我想设置导航栏右侧的公共栏按钮项,它应显示在导航控制器管理的所有屏幕上,并调用相同的动作.
例如,在Master Detail Application模板中,导航栏右侧有“addButton”,我也希望在DetailViewController上显示它(它不会起作用,因为虽然缺少动作).
我创建了一个UINavigationController的子类,我可以在其中更改导航栏颜色,但我无法设置Bar Button Items.我可以在每个屏幕的ViewController中设置Bar Button Items,这样我就必须为每个屏幕复制动作.
我也尝试创建UINavigationBar的子类,但我不知道是否可以在其上添加Bar Button Item.
如何在导航栏上设置常用栏按钮项?
提前致谢.
解决方法
您可以使用类别来接近它.让我们说UIViewController NavigationBar类
1.创建一个类别
2.在.h文件中添加一个方法 – (void)setNavigationBarItem方法(在本例中).
3.在.m文件中实现方法来处理设置的Bar Button Items的东西.
- (void)setNavigationBarItem { UIBarButtonItem *searchItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(something)]; self.navigationItem.rightBarButtonItem = searchItem; }
4.在哪个viewController中你需要NavigationBarItem,导入类别头并调用[self setNavigationBarItem]方法.