为 UINavigationController 设置默认的 rightBarButtonItem
Posted
技术标签:
【中文标题】为 UINavigationController 设置默认的 rightBarButtonItem【英文标题】:Set default rightBarButtonItem for UINavigationController 【发布时间】:2012-08-28 22:17:23 【问题描述】:伙计们,
我有一个 tabBarController,每个选项卡上都有一个 navigationController。
我想设置导航栏的默认右栏按钮,这样我就不必在 3 个不同的视图控制器上编写相同的代码。
我试过[[UINavigationBar appearance] setRightBarButtonItem:myButton];
但没有成功,是说:
-[_UIAppearance setRightBarButtonItem:]: unrecognized selector sent to instance
然后我尝试创建自己的 UINavigationController 子类,以便可以将按钮设置为:
self.navigationItem.rightBarButtonItem = myButton
但还是没有成功,似乎什么也没发生,可能是因为我此时没有 navigationItem。
有人有其他解决方案吗?
【问题讨论】:
你不能那样做。它根本不是外观的一部分。如果您有结构上通用的元素,请创建一个通用的UIViewController
子类来设置右栏按钮项,然后创建其他三个作为该子类的子类。
【参考方案1】:
如果你继承自UIViewController
,你可以像这样设置右键
UIBarButtonItem * rightButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"foobar.png"] style:UIBarButtonItemStylePlain target:self action:@selector(myAction)];
self.navigationItem.rightBarButtonItem = rightButton;
[rightButton release];
【讨论】:
以上是关于为 UINavigationController 设置默认的 rightBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 在 UINavigationController 中将 UIViewController 显示为全屏
无法将 LaunchViewController 转换为 UINavigationController
将背景设置为透明后的iOS UINavigationController显示黑屏
为 UINavigationController 设置默认的 rightBarButtonItem