2017-10-16 66 views
0

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

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

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

但是这在Watchos上不可用。

我该怎么做到这一点?

回答

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 
    } 
} 
相关问题