在Apple Watch应用中,我通过self.setTitle("some title")
更新标题文字。问题是,如果在控制器B存在时控制器A上触发了该代码,则A,“背景”中的一个(例如,在分层/主 - 细节设计中)会改变标题,尽管B正在显示。
解决这个问题的最佳方法是什么?我试图寻找一种方法来做像
这样的事情if (self.navigationController.topViewController == self) {
self.setTitle("Chats (live)")
}
但这在Watchos上不可用。
我还能怎样做到这一点?
答案 0 :(得分:0)
我把它放在一起,还没有经过这样的测试,但是第一眼看起来似乎有效:
var masterTitle = ""
var masterActive = false
...
setControllerTitle("Test") //set the title
override func didAppear() {
masterActive = true //enables title updates
setControllerTitle(masterTitle) //sets title if view re-appeared
}
override func willDisappear() {
masterActive = false //disables title updates
}
func setControllerTitle(_ s : String){
masterTitle=s //saves title for future use
if(masterActive){
self.setTitle(s) //sets title when view is current
}
}