后退按钮项目替换为"返回"

时间:2015-12-22 14:08:26

标签: ios swift

当iOS用标准" back"替换标准的先前viewcontroller标题时,我需要拦截标题。

来自Apple Developer网站 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationItem_Class/#//apple_ref/occ/instp/UINavigationItem/backBarButtonItem

  

请注意

     

如果后退按钮的标题太长而无法放入导航栏上的可用空间,则导航栏可能会替换   字符串“Back”代替按钮的原始标题。   仅当后退按钮由提供时,导航栏才会执行此操作   以前的视图控制器如果新的顶级视图控制器有一个   自定义左栏按钮项 - leftBarButtonItems中的对象或   leftBarButtonItem其导航项的属性 - 导航栏   不会更改按钮标题。

所以,我需要在它完成时拦截,用我的自定义标题更改后面文本,否则保留以前的ViewController标题。

(我使用此命令在viewDidLoad()中更改了后面的标题并且运行良好:

navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "my title", style: .Plain, target: nil, action: nil)

1 个答案:

答案 0 :(得分:-1)

您可以轻松检查字符串的长度是否过长,如果您的自定义标题是该长度,请更改后退按钮的标题。但是,这对于不同的屏幕尺寸来说并不好。

我认为更好的解决方案是从前一个视图控制器推送。有什么理由你不能从以前的控制器推?我假设如果你想要“后退”功能,那么你已经从某个地方推进了,所以它应该不是问题。