监视套件检查WKInterface控制器是否显示



在我的Apple Watch应用程序中,我通过self.setTitle("some title")更新标题文本。问题是,如果该代码在控制器 A 上触发,而控制器 B 存在,则"后台"中的代码 A(例如在分层/大纲细节设计中)会更改标题,尽管 B 显示。

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

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

最新更新