Iphone 如何更改后退按钮';appdelegate上的文本

Iphone 如何更改后退按钮';appdelegate上的文本,iphone,ios,cocoa-touch,uinavigationcontroller,Iphone,Ios,Cocoa Touch,Uinavigationcontroller,我有navigationController,我想更改appdelegate上的导航后退按钮文本。所以我想在appdelegate上更改每个uiviewController的后退按钮的文本。可能吗 我写了以下代码,但它不起作用 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { navigationController=

我有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;
}

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


相反,在每个视图控制器或导航控制器子类(或充当其代理)中对其进行更改,以便您可以在将每个视图控制器添加到堆栈时对其进行更改。

您需要了解导航栏(导航控制器拥有、管理和控制)与导航项之间的区别(导航控制器堆栈中有许多,每个视图控制器一个,由视图控制器拥有和控制)。因此您无法从尝试的位置更改它


相反,在每个视图控制器或导航控制器的子类(或作为其代理)中更改它,这样您就可以更改添加到堆栈中的每个视图控制器。

只是添加到我键入时显示的答案中

例如:

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

[self.navigationController pushViewController:viewController];

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

只是添加到我打字时出现的答案中

例如:

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

[self.navigationController pushViewController:viewController];

但是要小心。现在,您负责处理按钮操作,而这里的按钮将不起任何作用。

到底是什么不起作用?您看到按钮了吗?@giorashc此代码:self.navigationController.navigationItem.backBarButtonim=[[uiBarButtonim alloc]initWithTitle:@“自定义返回文本”样式:uiBarButtonimStyleBordedTarget:nil action:nil];我理解:)但你们在屏幕上看到了什么?你看到按钮了吗?应用程序是否崩溃等?我编辑了这个问题。你能看看@giorashc吗?你不应该在AppDelegate中这样做。您的AppDelegate应该是最小的。加载第一个视图控制器,显示它,完成。AppDelegate不应执行其他操作。(当然,UIApplication委托方法除外)。像这样编辑视图控制器是视图控制器的工作。究竟什么不起作用?你看到按钮了吗?@giorashc此代码:self.navigationController.navigationItem.backBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@“自定义返回文本”样式:uibarbuttonimStyleBordeded目标:nil操作:nil];我明白:)但你们在屏幕上看到了什么?你看到按钮了吗?应用程序是否崩溃等?我编辑了这个问题。你能看看@giorashc吗?你不应该在AppDelegate中这样做。您的AppDelegate应该是最小的。加载第一个视图控制器,显示它,完成。AppDelegate不应执行其他操作。(当然,UIApplication委托方法除外)。像这样编辑视图控制器是视图控制器的工作