我正在创建一个导航控制器(以编程方式)在我的appDelegate中。我想添加一个自定义按钮到导航栏,以便它将显示所有视图。
如果我将其添加到每个控制器的ViewDidLoad方法中,我可以使该按钮显示出来,但是否有一种方式可以只添加一次该按钮(即在我创建导航控制器的appDelegate中)?
我正在创建一个导航控制器(以编程方式)在我的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]
!