我正在appDelegate中创建一个导航控制器(以编程方式)。我想在导航栏中添加一个自定义按钮,以便它显示所有视图。
我可以通过按钮来显示我是否在每个控制器的ViewDidLoad方法中添加它,但是有一种方法我只能添加一次按钮(即在我创建导航控制器的appDelegate中)?
答案 0 :(得分:9)
您可以为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]
!