2017-10-16 7 views
0

Dans mon application Apple Watch, je mets à jour le texte du titre via self.setTitle("some title"). Le problème est que si ce code est déclenché sur le contrôleur A alors que le contrôleur B est présent, A, celui dans le "background" (par exemple dans un design hiérarchique/Master-Detail) change le titre bien que B soit affiché.Watchkit vérifier si WKInterfaceController affiche

Quel est le meilleur moyen de le contourner? J'essayé de chercher un moyen de faire quelque chose comme

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

mais ce n'est pas disponible sur watchos.

Sinon, comment puis-je y parvenir?

Répondre

0

Je mets cela ensemble, ont pas testé encore beaucoup, mais sur le premier regard, il semble fonctionner:

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