У меня есть приложение, которое проходит через набор экранов в контроллере навигации, а затем есть экран с контроллером табуляции, в котором один из содержащихся представлений хочет отобразить контроллер модального представления, который должен быть отображается поверх всего приложения (не полный экран).UINavigationController перекрывает ModalViewController
Все работает нормально, но модальное окно частично покрывается сверху навигационным контроллером. Я пробовал использовать self/self.tabBarController/self.navigationController/self.tabBarController.navigationController для вызова presentModalViewController, но они либо не работают, либо все еще отображают модальное окно под ним.
Я искал ответ на этот вопрос весь день, все остальные, похоже, испытывают проблемы, когда он перекрывается, а не когда он этого не делает.
Любые идеи? Благодарю. (код, скриншоты & видео ниже)
- (IBAction)add:(id)sender {
// create the view
AddAttainmentController *addScreen = [[AddAttainmentController alloc] init];
// pass in a selected pupil
[addScreen setPupils:[NSMutableArray arrayWithObject:pupil]];
// add the view to a navigation controller
UINavigationController *control = [[UINavigationController alloc] initWithRootViewController:addScreen];
// place the navigation controller on the screen
[self presentModalViewController:control animated:YES];
// release at the end
[control release];
[addScreen release];
}
Скриншоты: http://cl.ly/032v2k0t0N1s1m3H0511 (вы можете увидеть панель навигации как модальное окно слайдов) http://cl.ly/1h0o453Y3Z051P3S1S37 (панель навигации модального окна охватывается оригинал)
http://cl.ly/1e2J3o1q3V1l1j470m12
Спасибо за помощь, я не осознавал этого вообще, кажется, довольно ненужным ограничением. Любые советы по альтернативе? –
Альтернатива чему? Что ты пытаешься сделать? Я бы не стал игнорировать эти ограничения, потому что вам приходится иметь дело с неопределенным поведением. Если вам нужна табуляция, как просмотр в стеке навигации, я бы написал один подкласс UIViewController, чтобы поменять несколько подзонов его вида. Если вы хотите, чтобы «модальный», который не заполнял экран, я бы мог видеть, что текущий контроллер представления отображает его как подпункт. Если можно, я бы пересмотрел дизайн пользовательского интерфейса, чтобы избежать столкновения с этими проблемами в первую очередь. – Jonah
Я полагаю, что вы правы, это, похоже, имеет больше смысла, чем дополнительные вложенные представления. –