如何在Three20'的AppDelegate中添加一个全局右栏按钮(UINavigationController)?[英] How to add a global right bar button (UINavigationController) in Three20's AppDelegate

本文是小编为大家收集整理的关于如何在Three20'的AppDelegate中添加一个全局右栏按钮(UINavigationController)?的处理方法,想解了如何在Three20'的AppDelegate中添加一个全局右栏按钮(UINavigationController)?的问题怎么解决?如何在Three20'的AppDelegate中添加一个全局右栏按钮(UINavigationController)?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我想在全局 AppDelegate 中添加一个全局右栏按钮,这样我的所有视图控制器都会自动拥有这个按钮.

我在 AppDelegate 中添加了

navigator.window.rootViewController.navigationController.navigationItem.rightBarButtonItem     
= [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Test", @"") 
style:UIBarButtonItemStyleBordered target:self action:@selector(showTest)] autorelease]; 

上面的代码当然不行..上面的代码有什么问题吗?

推荐答案

好吧,我不确定你能不能按照你的方式来做,因为 UINavigatorController 总是使用当前显示的视图控制器中的按钮,并且不是来自顶部/根控制器.

你可以做的是用一个新的视图控制器继承 TTViewController 并设置你的左栏按钮项.

///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
@implementation BaseViewController


///////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
#pragma mark -
#pragma mark UIViewController



///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)viewDidLoad {
  [super viewDidLoad];


  self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Test", @"") 
                                                                            style:UIBarButtonItemStyleBordered target:self action:@selector(showTest)] autorelease];
}

然后你应该从这个基础控制器扩展你所有的视图控制器,它包含正确的导航栏项目

本文地址:https://www.itbaoku.cn/post/924660.html