2009-05-25 4 views
0

Основная функциональность моего приложения контролируется UITabBarController. Однако мне нужно загрузить View, в котором есть UINavigationController. Когда я вернусь к моей UITabBarController с помощьюПереключение между UITabBarController и UINavigationController

 self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0]; 

Мой UITabBarController больше не реагирует на нажатия. Кажется, что View не имеет фокуса.

Однако, если я использую этот код, чтобы переключиться обратно на UITabBarController:

[window addSubview:tabBarController.view] 

Мои кнопки будут реагировать. Я чувствую, что «addSubview» менее эффективен, потому что я никогда не удаляю представление из окна, и поэтому он должен добавить вторую копию представления в стек. Я прав? Есть ли способ использовать первый метод и заставить мои кнопки реагировать? Пожалуйста, дайте мне знать.

ответ

1

Похоже, что вы неправильно представляете контроллер Nav. Вы определенно не должны добавлять представления непосредственно к окну. Вы хотите, чтобы представить его с помощью

[myTabBarController presentModalViewController:myNavController animated:YES]; 

Когда вы закончите с контроллером нав вы уволить его с

[myTabBarController dismissModalViewControllerAnimated:YES]; 

и все должно работать.

BTW, все это задокументировано в документах для UIViewController и документа «Просмотр контроллера для iPhone OS».

+0

n8gray ... вы только что спасли мне жизнь. Отлично. Я просто неправильно открыл навигационный контроллер. Я очень ценю это. Вы можете отредактировать сообщение, чтобы удалить эту черту в этой строке: [myTabBarController - rejectModalViewControllerAnimated: YES]; – Dave

+0

Упс! Да, вы правы, конечно. Ред. Рад был помочь! – n8gray

+0

Mayer YOU может мне помочь ... Каждый раз, когда я пытаюсь '-dismissModalViewControllerAnimated:', я получаю эту ошибку: «UIViewControllerHierarchyInconsistency», причина: «Представленный контрольный контроллер для контроллера сам по себе отключен для:

Смежные вопросы