我正在应用程序委托中创建一个 NavigationController 并使用以下代码以编程方式向它添加一个自定义按钮。
self.navCntrl = [[UINavigationController alloc]initWithRootViewController:self.viewController];
// -- Adding INFO button to Navigation bar --
UIBarButtonItem *infoButton = [[UIBarButtonItem alloc]
initWithTitle:@"i"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(showInfo)];
self.navCntrl.topViewController.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:infoButton, nil];
self.window.rootViewController = self.navCntrl;
但问题是,当我将第二页推送到 navigationController 时,导航栏上未显示取消按钮。如果我回到第一页,取消按钮就在那里。因此,显然该按钮仅针对第一个视图添加。
对此的一种补救方法是在每个视图控制器中重复添加上述自定义按钮(复制和粘贴代码)。我相信在使用相同的导航控制器时必须有其他方式。如果有的话是什么?
提前致谢