我有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;
}
答案 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];
但要小心。有了这个,你现在负责处理按钮动作,这里没有什么。