У меня довольно стандартная иерархия представлений, в основном с UITabBarController
, содержащая несколько UINavigationController
.iOS 7 отменяет текущую текстовую презентацию CurrentContext
Я создаю новый UINavigationController
и представляю его модально с одного из вкладок.
Я хочу, чтобы показать с UIModalPresentationCurrentContext
, поэтому я устанавливаю это так:
[newNavCon setModalPresentationStyle:UIModalPresentationCurrentContext];
И потом, я представляю это так:
[oldNavCon presentViewController:newNavCon animated:YES completion:nil];
Но когда он получает представлены, это полный экран, а не текущий контекст, который я установил.
Когда я смотрю точки останова, модальный стиль презентации на newNavCon
изменен на UIModalPresentationFullScreen
сразу после presentViewController
.
Вещь, которая меня действительно смущает, заключается в том, что это происходит только на iOS7. Он работает точно так, как ожидалось, на iOS 8-10.
Почему это происходит? Есть ли какая-то определенная причуда, о которой я не знаю в iOS7? Почему стиль презентации будет переопределен?
EDIT: Чтобы уточнить, вот иерархия зрения я работаю с:
UIViewController
(как контейнер, полноэкранный режим)UITabBarController
(не во всем экране, как управляемый контейнером)definesPresentationContext
UINavigationController
(как вкладки корня, представляет окно модальное)definesPresentationContext
UINavigationController
(представлено модально приведенной вышеUIViewController
)modalPresentationStyle
=UIModalPresentationCurrentContext
UIViewController
Я использую собственный подкласс для своих навигационных кодов, но когда я меняю его на стандартный UINavigationController, все равно это происходит. – ABeard89
Я добавил символическую точку останова, чтобы увидеть, когда она изменится, и это определенно не в коде, который я написал. Точка останова остановилась внутри UIKit где-то во время операции 'presentViewController'. К сожалению, я не мог понять. Я не видел ничего, с чем мог бы работать. – ABeard89
Спасибо. Это так, как я. Это так странно, что он не хочет представлять в качестве текущего контекста. В документации говорится, что это возможно, и насколько я могу судить, я делаю все правильно. Я полагал, что моя единственная надежда состояла в том, чтобы увидеть, кто-нибудь здесь, в SO, помнил некоторые недокументированные ошибки или причуды с поведением iOS7. И я не удивлен, что вы этого не делаете. У меня едва есть тест, и это раздражает, потому что я должен использовать XCode7, чтобы проверить его ... – ABeard89