WatchKit检查WKInterfaceController是否显示
问题描述:
在我的Apple Watch应用程序中,我通过self.setTitle("some title")
更新标题文本。问题是,如果在控制器B存在的情况下在控制器A上触发该代码,则“背景”中的A(例如,在分层/主/从设计中)的A会更改标题,尽管显示B。WatchKit检查WKInterfaceController是否显示
解决此问题的最佳方法是什么?我试图寻找一种方法来做类似
if (self.navigationController.topViewController == self) {
self.setTitle("Chats (live)")
}
但是这在Watchos上不可用。
我该怎么做到这一点?
答
我把这个在一起,没有测试过这么多还没有,但是,先看看它似乎工作:
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
}
}