我正在添加一个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以获取其标题?我很好奇这两个人在一起工作的方式。
答案 0 :(得分:2)
是的,这是-initWithRootViewController:
和其他人发生的事情,UINavigationController
遍历导航堆栈中的所有UIViewController
个对象,并将相应的属性分配给自己。
这样的事情发生在幕后:
for(UIViewController *vc in viewControllers) {
[vc setNavigationController:self];
//set other properties here as well...
}