【问题标题】:Watchkit check if WKInterfaceController is showingWatchkit 检查 WKInterfaceController 是否正在显示
【发布时间】:2017-10-16 20:00:40
【问题描述】:

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

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

if (self.navigationController.topViewController == self) {
        self.setTitle("Chats (live)")
}

但这在 Watchos 上不可用。

我还能如何做到这一点?

【问题讨论】:

    标签: watchkit apple-watch watchos


    【解决方案1】:

    我把它放在一起,还没有测试这么多,但乍一看它似乎工作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多