导航控制器 - 添加自定义导航栏项目到所有视图
问题描述:
我正在我的appDelegate(以编程方式)创建导航控制器。我想将一个自定义按钮添加到导航栏,以便它将显示所有视图。导航控制器 - 添加自定义导航栏项目到所有视图
我可以得到按钮来显示是否将它添加到每个控制器的ViewDidLoad方法中,但有没有一种方法可以只添加按钮一次(即在创建导航控制器的appDelegate中)?
答
您可以为您ViewControllers创建一个简单的层次结构:
UIViewController
|
CustomBarButtonItemViewController
/ | \
/ SecondViewController \
FirstViewController ThirdViewController
的CustomBarButtonItemViewController
将覆盖-viewDidLoad
,像这样:
- (void)viewDidLoad {
[super viewDidLoad];
UIbarButtonItem *barButtonItem = ...;
self.navigationItem.rightBarButtonItem = barButtonItem;
}
然后创建First-
,Second-
和ThirdViewController
作为CustomBarButtonItemViewController
的子类:
@interface FirstViewController : CustomBarButtonItemViewController
@interface SecondViewController : CustomBarButtonItemViewController
@interface WhateverYouLikeViewController : CustomBarButtonItemViewController
确保您在第三级子类中致电[super viewDidLoad]
!
这很好,感谢您的答案! – user1264577 2012-03-21 15:40:55
伟大的想法。尽管如此,没有(我可以找到)使用NavController实例本身内置的方法/属性/行为来实现这一点的方式 - 看起来像是某些在某些应用程序中非常有用的东西。 – 2012-09-26 02:56:49