2011-01-19 75 views
0

我加入一个UIViewController作为根控制器一个UINavigationController(见下文)UIViewController navigationItems与UINavigationControllers导航栏的关系?

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

我的问题是关于设置在UIViewController的

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

的navigationItem财产当你这样做是什么是在UIViewController上设置它以及如何由UINavigationController拾取它之间的关系。我的理解是导航栏在UINavigationController上,我错误地试图将它设置在那里。

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

回答

2

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

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

像这样的事情在引擎盖下发生