如何在appdelegate上更改后退按钮的文本

时间:2013-07-15 08:30:32

标签: iphone ios cocoa-touch uinavigationcontroller

我有navigationController,我想在appdelegate上更改导航后退按钮文本。所以我想在appdelegate上更改每个uiviewController的后退按钮的文本。有可能吗?

我写了下面的代码,但它没有用。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    navigationController=[[UINavigationController alloc]initWithRootViewController:self.viewController];

    self.window.rootViewController =  self.navigationController;


    self.navigationController.navigationItem.backBarButtonItem =
    [[UIBarButtonItem alloc] initWithTitle:@"custom back text"
                                     style:UIBarButtonItemStyleBordered
                                    target:nil
                                    action:nil];  // didn't work


    [self.window makeKeyAndVisible];
    return YES;
}

2 个答案:

答案 0 :(得分:8)

您需要了解导航栏(导航控制器拥有,管理和控制)和导航项之间的区别(导航控制器堆栈中每个视图控制器有一个,拥有和控制由视图控制器)。所以你无法从你尝试的地方改变它。

相反,在每个视图控制器中更改它或者将导航控制器子类化(或充当其委托),这样您就可以将每个视图控制器更改为添加到堆栈中。

答案 1 :(得分:0)

只需添加我输入时出现的答案。

例如:

UIViewController *viewController = [[UIViewController alloc] init];
viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"custom back text"
                                     style:UIBarButtonItemStyleBordered
                                    target:nil
                                    action:nil];

[self.navigationController pushViewController:viewController];

但要小心。有了这个,你现在负责处理按钮动作,这里没有什么。