导航控制器中的工具栏

Aha*_*tra 3 iphone objective-c uinavigationcontroller ios

我正在使用以下代码在导航控制器中创建工具栏:

 [self.navigationController setToolbarHidden:NO];

 //Create a button
     NSArray *toolbarItems = [NSArray arrayWithObjects:
                              [[UIBarButtonItem alloc] initWithTitle:@"Help" style:UIBarButtonItemStyleBordered target:self action:@selector(helpButton:)]
                              ,nil];
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,只要有导航控制器(多个其他视图),工具栏就可见.有没有办法只将工具栏限制在一个视图?

谢谢

rob*_*off 5

引用UINavigationController类参考:

默认情况下隐藏导航工具栏,但您可以通过调用setToolbarHidden:animated:导航控制器对象的方法将其显示在导航界面中.如果并非所有视图控制器都支持工具栏项,则委托对象可以调用此方法以在后续推送和弹出操作期间切换工具栏的可见性.

因此,为导航控制器设置一个委托.在你的代表中navigationController:willShowViewController:animated:,做这样的事情:

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    BOOL shouldShowToolbar = (viewController == theViewControllerThatNeedsAToolbar);
    [navigationController setToolbarHidden:shouldShowToolbar animated:animated];
}
Run Code Online (Sandbox Code Playgroud)