1

В обычае UIViewController, если у меня есть член UINavigationController, что я инициализирует с self как вид корня, как это:контроллеры вид Root и модальные диалоговые

navController = [[UINavigationController alloc] initWithRootViewController:self]; 

затем представляя модальное диалоговое окно не скрывает вкладку в нижней части экрана. В результате пользователь переключается на другую вкладку, пока отображается модальное диалоговое окно, когда они появляются на вкладке, которая отображает модальный диалог, тогда последующие вызовы presentModalViewController вообще не отображают модальный диалог, даже если я звоню dismissModalViewControllerAnimated в результате переключения вкладок.

Если я инициализировать UINavigationController с установкой self в качестве корневого контроллера вне,

navigationController = [[UINavigationController alloc] init]; 

то панель вкладок скрыта, как и ожидалось. Я изменил ситуацию в своей программе, так что это уже не проблема для меня, но я не уверен, что понимаю, почему это происходит. Является ли плохой практикой иметь навигационный контроллер с self в качестве корня, если навигационный контроллер будет показывать модальные диалоги?

ответ

1

Я никогда не добавлял себя как корневой контроллер

У меня всегда есть какой-то контроллер, который получает NavigationController.view добавил к себе. И первый ViewController, который будет отображаться в иерархии навигации, я затем добавляю в качестве корневого контроллера. Это просто другое слово для «первой страницы» (в начале все имена могут быть довольно запутанными).

Пример в MyProjectAppDelegate.m:

UITableViewController *startScreen = [[UITableViewController alloc] init]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:startScreen]; 
[window addSubview:navController.view]; 

Вы также не должны смешивать UINavigationController с UITabBarController, если вы хотите иметь панель вкладок в «страницы» navigationcontroller вы можете построить собственный UITabBarController.

Это покажет вам, как http://github.com/wiredbob/NavTab

(у меня был большие проблемы в понимании всего этого вида/контроллера вложенности себя, и этот проект действительно сделал разницу. Можно сказать, что это код, который я действительно узнал, как программу для iPhone/Mac с: DD)

+0

Спасибо за ссылку. Я посмотрю на этот код! – Tony

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