[ios]不更改导航栏后退按钮的文本

发布时间: 2017/3/28 23:39:52
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图改变文本的导航栏后退按钮的文本。我试过在这里提供的解决方案,但我不能得到我想要在后退按钮的文本。在 appdelegate 中设置这些功能︰

 [[UINavigationBar appearance] setBarTintColor:[self colorWithHexString:@"e74c3c"]];
 [[UINavigationBar appearance] setBarTintColor:[self colorWithHexString:@"e74c3c"]];   

[[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor whiteColor], UITextAttributeTextColor,
  [UIFont fontWithName:@"Futura-CondensedMedium" size:19.0], UITextAttributeFont,nil]];

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowOffset = CGSizeMake(0.0, 1.0);
shadow.shadowColor = [UIColor whiteColor];

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil]
 setTitleTextAttributes:
 @{NSForegroundColorAttributeName:[UIColor whiteColor],
   NSShadowAttributeName:shadow,
   NSFontAttributeName:[UIFont fontWithName:@"Futura-CondensedMedium" size:19.0]
   }
 forState:UIControlStateNormal];

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

并在每个 viewcontroller viewdidload 我设置︰

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"SomeText" style:UIBarButtonItemStylePlain target:nil action:nil];

UIBarButtonItem *newBackButton = 
        [[UIBarButtonItem alloc] initWithTitle:@"NewTitle" 
                                         style:UIBarButtonItemStyleBordered 
                                        target:nil 
                                        action:nil];
[[self navigationItem] setBackBarButtonItem:newBackButton];

有何建议?

解决方法 1:

如果我没有误解你了你可以设置的后退按钮的标题。假设有三个视图控制器︰ ABC 。现在你想要的后退按钮,将"MyViewA",当您从导航标题 AB 然后您需要将此代码放在"viewWillAppear:"你的 ViewController 的 A (这将显示后退按钮的标题为"MyViewA",当你在视图控制器 B )。

 //viewWillAppear of ViewController A
 -(void)viewWillAppear:(BOOL)animated{

       //now set title of back button
       self.navigationItem.backBarButtonItem =
       [[UIBarButtonItem alloc] initWithTitle:@"YourTitle"
                                  style:UIBarButtonItemStyleBordered
                                 target:nil
                                 action:nil];
 }

同样如果你从导航 BC ,想要将后退按钮标题设置为 ViewController C ,您需要把上面的代码"viewWillAppear:"委托 ViewController B 。简而言之,你需要在你当前的视图控制器上设置标题的下一个视图控制器。

官方微信
官方QQ群
31647020