2012-12-06 49 views
3

两个写你自己的容器时,关于的UINavigationController和UINavigatinBar问题。与容器视图控制器访问导航栏

1)创建我初始容器与故事板并在一个UINavigationController嵌入它。我发现我的childViewControllers只有这样,才能访问UINavigationBar的是做这样的事情在childViewController的viewDidLoad:

UIBarButtonItem *showDetailViewControllerBBI = [[UIBarButtonItem alloc] initWithTitle:@"Show Details" style:UIBarButtonItemStyleBordered target:self action:@selector(switchToCarouselLayout:)]; 
self.parentViewController.navigationItem.leftBarButtonItem = showDetailViewControllerBBI; 

这是获得UINavigationBar的正确方法是什么?

2)我以为我可以在一个UINavigationBar的一巴掌到我最初ContainerViewController。我所做的是删除故事板中的UINavigatinController,并在我的containerViewController的顶部放置一个UINavigatinBar。当我运行该项目时,没有导航栏显示。那么,如果我不能在我的初始容器视图控制器中拥有它,而没有嵌入到UINavigationController中,那么IB中的UINavigationBar实际上做了什么?或者它只是为了美观,你只能用它与UINavigationControllers?谢谢。

回答

0

1)是的,我认为这是引用从子视图控制器东西的OK方式。另一种方法是在容器控制器本身中定义条形按钮项目,然后将目标设置为self.childViewControllers.lastObject(假设只有一个)。

2)这应该工作。你是否在导航栏中拖动,或者只是将顶部栏的模拟度量值更改为导航栏?后者仅用于IB中的可视布局,据我所知 - 它实际上并没有添加一个。

+0

(1)谢谢。尝试仍然具有导航控制器的后台按钮功能时遇到了麻烦。 (2)我确实从IB拖出一个,因为某种原因它没有显示...... – Crystal

+0

@Crystal,我不完全清楚你想要完成什么。有关您的设置的更多细节将会有所帮助。 – rdelmar

相关问题