2011-01-19 2 views
0

Я добавляю UIViewController как корневой контроллер для UINavigationController (см ниже)UIViewController navigationItems отношение к панели навигации UINavigationControllers?

UIViewController *myUIViewController = [[TableController alloc] init]; 
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myUIViewController]; 

Мой вопрос в отношении установки свойства navigationItem на UIViewController

[[self navigationItem]setTitle:@"Name"]; 

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

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

ответ

2

Да, это то, что происходит в -initWithRootViewController: и других, UINavigationController перебирает все UIViewController объектов в навигации стека и присваивает соответствующие свойства себе.

Нечто подобное происходит под капотом:

for(UIViewController *vc in viewControllers) { 
    [vc setNavigationController:self]; 
    //set other properties here as well... 
} 
Смежные вопросы