我正在开发一个ios应用程序并使用故事板(第一次使用它)来设计ui所以我有以下内容:
每个控制器都有一个已定义的标题。
我想要做的是在所有视图控制器的导航栏上放置一个rigth按钮,这样我就可以(以编程方式)推送到另一个控制器(希望是在笔尖,但我可以将它移动到SB whit没有问题)
我试过了:
使用第二个类来避免无限循环但得到异常:
由于未捕获的异常'NSGenericException'而终止应用程序,原因:'此编码器要求从initWithCoder返回替换的对象:
在导航栏类的init方法中手动添加按钮,没有效果
我正在使用的代码就是这个(以及一些变体):
UIBarButtonItem *BTN = [[UIBarButtonItem alloc]
initWithImage:[[UIImage alloc] initWithContentsOfFile:@"img.png"]
style:UIBarButtonItemStyleBordered
target:self
action:@selector(pushView)];
[[self navigationItem] setRightBarButtonItem:BTN];
以任何方式我都可以存档,或者我应该手动查看每个视图吗?
- 感谢
答案 0 :(得分:3)
是的,你需要在每个视图控制器中为它的navigationItem
属性做。但是你可以通过在category
类上创建一个UIBarButtonItem
来简化它,它将有一个方法配置并返回你需要的按钮。
所以你只需要调用该类别的方法,而不需要在任何地方编写相同的代码。
以下是一些类似的帖子:
Adding same button to all view controllers in UINavigationController