UIViewController navigationItems与UINavigationControllers导航栏的关系?

时间:2011-01-19 19:17:46

标签: iphone objective-c cocoa-touch

我正在添加一个UIViewController作为UINavigationController的根控制器(见下文)

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

我的问题是关于在UIViewController上设置navigationItem属性

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

当你这样做时,在UIViewController上设置它与UINavigationController如何拾取它之间的关系是什么。我的理解是导航栏位于UINavigationController上,我错误地尝试将其设置在那里。

UINavigtionControllers导航栏是否会查看UIViewControllers navigationItem以获取其标题?我很好奇这两个人在一起工作的方式。

1 个答案:

答案 0 :(得分:2)

是的,这是-initWithRootViewController:和其他人发生的事情,UINavigationController遍历导航堆栈中的所有UIViewController个对象,并将相应的属性分配给自己。

这样的事情发生在幕后:

for(UIViewController *vc in viewControllers) {
    [vc setNavigationController:self];
    //set other properties here as well...
}