2017-10-16 124 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 
    } 
}