【发布时间】:2015-11-12 14:40:33
【问题描述】:
我在更改导航栏中后退按钮的文本时遇到了一个小问题。我的应用看起来像这样:
-> Navigation Controller1 -> ViewController1 -> ViewController2 -显示详情> TabBarController -> NavigationController2 -> ViewController3 -> ViewController4
我通过添加更改了ViewController2 的后退按钮的文本
self.navigationItem.backBarButtonItem?.title = "Test"
从ViewController1 进入viewDidLoad() 方法。但是我无法从ViewController4更改后退按钮的文字
我进行了一些研究并找到了一些解决方案,但它们对我不起作用。
我试过了:
在App Delegate - 我遇到了崩溃:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Please file a radar on UIKit if you see this assertion.
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Code
UIBarButtonItem.appearance().title = "Test"
//Code
return true
}
在推送中ViewController3 - 没有任何变化
self.navigationItem.backBarButtonItem?.title = "Test"
在NavigationController2 - 没有任何变化
self.navigationItem.backBarButtonItem?.title = "Test"
在NavigationController2 - 没有任何变化
self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
在我的 故事板 中更改 NavigationItem 中的文本 - 没有任何反应
最好的解决方案是将其设置在App Delegate 中。但我不能,因为它正在崩溃......
你知道我做错了什么吗?
崩溃日志:
2015-11-12 15:51:56.444 Name[2988:417662] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(0x22718f8f 0x30dc9c8b 0x22632c2b 0x262e55e7 0x260358b1 0x25f03439 0x262e2c83 0x25e40baf 0x25e406bb 0x2603f153 0x2603f0cb 0x25d9fd27 0x2605b987 0x2603efb7 0x25d9779d 0x25d96dc7 0x25d96ce1 0x25da154b 0x25da0f6b 0x25e2cf1f 0x25e2c917 0x25e2c6dd 0x25e2c19f 0x25e44a75 0x25e446b5 0x25e44649 0x25d97e43 0x257abd29 0x257a755d 0x257a73e5 0x257a6d81 0x257a6b6f 0x257a0849 0x226dedcd 0x226dc48b 0x226dc893 0x22628f31 0x22628d43 0x2a103201 0x25dfa879 0x10b778 0x3137baaf)
libc++abi.dylib: terminating with uncaught exception of type NSException
【问题讨论】:
-
向我们展示应用委托中的代码。同时发布完整的崩溃日志
-
如果你可以通过设置视图控制器1的标题来设置视图控制器2中的后退按钮,为什么不设置视图控制器3的标题来设置视图控制器4中的后退按钮的标题呢?
-
@MrT 在 AppDelegate 中更改后退按钮标题的代码如下所示: UIBarButtonItem.appearance().title = "Test" (如果我再次删除它,一切正常)。我在问题中添加了崩溃日志。
-
@keithbhunter "在推送的 ViewController3 中 - 没有任何变化" - self.navigationItem.backBarButtonItem?.title = "Test" (我正在将此代码添加到 ViewController3)
-
设置视图控制器的标题而不是backBarButtonItem。喜欢
self.title = "test"而不是self.navigationItem.backBarButtonItem?.title = "Test"。
标签: ios iphone swift back navigationbar