2015-09-11 5 views
3

Je suis en train de finaliser une application watchOS, mais j'ai des difficultés à faire fonctionner l'application iPhone lorsque watchApp a fait une demande.viewDidLoad non appelé lors de l'utilisation d'une application WatchOS

Il semble que l'application se charge en arrière-plan sur la demande de données de l'Apple Watch. Cependant, si je puis (dans le temps que l'application est toujours en arrière-plan) ouvrir l'application, la vue est affichée, mais sans passer par l'initiation normale comme appel viewDidLoad.

Comment puis-je charger correctement la vue dans ce cas, lorsque je lance l'application lorsqu'elle est déjà chargée via un processus externe tel que Apple Watch?

La raison pour laquelle j'ai besoin d'initialiser la vue est parce qu'elle est remplie par la base de données.

[edit:] L'Application est une application de Storyboard normale. Le contrôleur de vue initial est un UINavigationController qui charge un UIViewController en tant que rootViewController.

Ceci est fait «automatique» par la spécification dans les paramètres Ap. Mon sentiment est que parce que le storyboard semble être chargé en arrière-plan, la classe RootViewController n'est pas chargée pour une raison quelconque.

+0

Je sais que c'est un travail, mais que diriez-vous d'utiliser applicationDidBecomeActive ou applicationWillEnterForeground? La question est de savoir comment ils s'appellent. – mark

+0

Ils le font. Je pensais alors à envoyer une notification, mais je n'ai aucun moyen de les initialiser. –

+0

Vous devez fournir plus d'informations sur l'architecture de navigation. Comment initialisez-vous votre contrôleur de vue, comment le présentez-vous sur l'écran, etc. –

Répondre

0

La procédure ViewDidLoad a été appelée, mais viewDidAppear ne l'est pas si l'application provient de l'arrière-plan. Il est donc possible de créer un écouteur de notification dans viewDidLoad pour écouter l'application sortir du mode d'arrière-plan.