/ / Използване на навигационен контролер в TabBar контролер Iphone 6+ IOS 8.3 - uinavigationcontroller, uitabbarcontroller, iphone-6-plus, ios8.3

Използване на контролер за навигация в контролера TabBar Iphone 6+ IOS 8.3 - уинавигационен контролер, uitabbarcontroller, iphone-6-plus, ios8.3

Наскоро съм изправен пред проблем в приложението ми на iphone 6+ IOS8.3. Въпросът е, че аз съм с uitabbarController в моя ап и всеки раздел на раздел бар контролер съдържа uinavigationController.

Сега, когато изберете 6-ти / 7-ми раздел, като отидете в раздела Още и след това завъртете екрана, след това се появява черен екран.

За да тествате сценария, направих един saperate applictaion и направих една и съща структура, т.е. направи 9 табове и всеки раздел съдържа навигационен контролер. Всичко това е направено на сценария и не е написан код.

След това стартирам приложението и изберете 6-ти раздел и завъртете екрана, появява се черният екран. и когато се въртя обратно към портрета, отново всичко се оправи.

Прилагам снимки на екрана за допълнително обяснение.

i Направете сляпо приложение с 9 раздела, всеки раздел има UinavigationController.Tap на Още и вижте останалите раздели.

изберете 6-ти раздел (втори раздел в раздела Още)

Завъртете устройството, за да покаже черен екран.

Така че всеки, който може да каже защо се превръща в черен екран? Правя го погрешно? или Това е грешка на IOS8.3 или нещо друго?

Отговори:

0 за отговор № 1

Аз се сблъсках със същия проблем днес и тъй като този въпрос все още не е отговорен, бих искал да представя моето просто решение.

  1. В подкласа на UITabbarController се абонирайте за ротационните събития:

    [[NSNotificationCenter defaultCenter] addObserver:self                                          //Add yourself as an observer
    selector:@selector(orientationChanged:)
    name:UIDeviceOrientationDidChangeNotification
    object:[UIDevice currentDevice]];
    
  2. Добавете следния код към метода за наблюдение на ротация:

    - (void) orientationChanged:(NSNotification *)notification {
    if (IS_IPHONE_6P) { // some magic to figure out if we"re on iphone 6 plus
    self.customizableViewControllers = @[]; // we don"t want an edit button to appear
    if (self.selectedIndex == 5 || self.selectedIndex == 6) { // the effect only happens to view controllers at index 5 and 6.
    [self.moreNavigationController popToRootViewControllerAnimated:NO]; // pop the view controller from the moreNavigationViewController
    self.selectedViewController = self.viewControllers[self.selectedIndex]; // set the selected view controller to be visible again.
    }
    }
    }