2014-08-30 4 views
0

Fondamentalement, j'ai une minuterie mis en place dans un uiapplication pour vérifier si l'utilisateur est inactif, et ce que je veux arriver est que si l'utilisateur est assez longtemps, le viewcontroller sur le dessus sera être le journal initial en un.Comment faire pour basculer les contrôleurs de vue de UIApplication

La partie timer fonctionne, je l'ai essayé avec NSlog. Donc, fondamentalement, j'ai besoin de trouver le contrôleur de vue en cours, si ce n'est pas les contrôleurs de vue d'enregistrement ou de connexion, il devrait aller au contrôleur de vue de connexion initiale.

Comment puis-je obtenir le contrôleur de vue actuel, puis basculer dans la classe UIapplication?

Si c'est de l'aide, j'utilise un contrôleur de navigation, pas un contrôleur de barre d'onglets.

Répondre

-2

Vous pouvez voir tous vos contrôleurs View sur la pile navigationController. Voir self.navigationController.topViewController et self.navigationController.visibleViewController;

+0

Et si son délégué application ne dispose pas d'une propriété 'navigationController' (ce qui ne devrait probablement pas)? – nhgrif

+0

"Si vous avez besoin d'aide, j'utilise un contrôleur de navigation, pas un contrôleur de barre d'onglets." – Andrey

+1

J'ai vu et lu cette partie de la question. Le fait qu'il utilise un contrôleur de navigation ne garantit pas en soi que sa classe de délégué d'application possède une propriété 'navigationController', et ne garantit pas qu'il définit correctement cette propriété même s'il l'a créée. – nhgrif

0

Vous pouvez récupérer le contrôleur de vue racine de votre application en utilisant le sharedApplication singleton:

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 
UINavigationController *rootNavController = appDelegate.mainWindow.rootViewController; 
// Change to what you want your rootViewController 
+0

Vous voulez 'mainWindow', pas' windows'. En outre, il peut être utile de signaler que pour obtenir une référence au contrôleur de vue actuel, il doit probablement appeler 'lastObject' sur le contrôleur de navigation. – nhgrif

+0

je vous remercie pour votre remarque, c'est une erreur de frappe, je l'ai corrigé – gsempe

+0

Je l'ai corrigé pour vous maintenant puisque votre correctif était toujours faux. Je ne peux toujours pas convertir ceci jusqu'à ce que vous distinguiez la différence entre le contrôleur de navigation et le contrôleur de vue qui est en haut de la pile de navigation. – nhgrif

Questions connexes