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) 我想我可以在我最初的 ContainerViewController 上添加一个 UINavigationBar。我所做的是删除我的故事板中的 UINavigatinController 并将 UINavigatinBar 放在我的 containerViewController 的顶部。当我运行项目时,没有显示导航栏。那么如果我不能在我的初始容器视图控制器中拥有它而不嵌入到 UINavigationController 中,IB 中的 UINavigationBar 实际上会做什么?还是只是为了美观而只能与 UINavigationControllers 一起使用?谢谢。

4

1 回答 1

0

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

2)这应该工作。您是拖入导航栏,还是只是将顶部栏的模拟指标更改为导航栏?后者仅用于 IB 中的视觉布局,据我所知——它实际上并没有添加一个。

于 2012-12-07T00:52:44.360 回答