Watchkit检查是否显示WKInterfaceController

时间:2017-10-16 20:00:41

标签: watchkit apple-watch watch-os

在Apple Watch应用中,我通过self.setTitle("some title")更新标题文字。问题是,如果在控制器B存在时控制器A上触发了该代码,则A,“背景”中的一个(例如,在分层/主 - 细节设计中)会改变标题,尽管B正在显示。

解决这个问题的最佳方法是什么?我试图寻找一种方法来做像

这样的事情
if (self.navigationController.topViewController == self) {
        self.setTitle("Chats (live)")
}

但这在Watchos上不可用。

我还能怎样做到这一点?

1 个答案:

答案 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
    }
}