2010-07-30 5 views
0

J'essaie de changer de vue à la réception d'une notification push lorsque l'application est toujours en cours d'exécution. J'ai essayé d'utiliser cela dans le AppDelegate.miPhone - L'application est toujours en cours d'exécution, recevez la notification push = changez la vue

-(void)application:(UIApplication *)application didRecieveNotification:(NSDictionary *)userInfo 
{ 
    TestClass *aTestClassViewController = [[TestClass alloc]initWithNibName:@"TestClass" bundle:nil]; 
    [self presentModalViewController:aTestClassViewController animated:YES]; 
    [aTestClassViewController release]; 
} 

Mais cela n'a pas fonctionné. Je ne peux même pas redémarrer l'application. donc je suppose que c'est la mauvaise façon de le faire.

Une idée les gars? Je l'apprécierais.

Répondre

0

Résolu *** Je l'ai fait de cette façon -> je montrais une vue d'alerte première (dont je avais besoin de toute façon) ensuite utilisé la méthode de

-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
    TestClass *aSelectionScreenViewController = [[TestClass alloc] initWithNibName:@"TestClass" bundle:nil]; 
    [viewController presentModalViewController:aSelectionScreenViewController animated: YES]; 
    [aSelectionScreenViewController release]; } 
0

Il nous manque un peu de contexte au sujet de votre application, mais votre problème de base est que c'est l'objet délégué de l'application qui reçoit la notification, pas un contrôleur de vue. C'est pourquoi vous ne pouvez pas faire juste [self presentModalViewController: someViewController];

Je pense que c'est l'extrait de votre propre réponse qui donne ce dont vous avez besoin: votre délégué d'application (vraisemblablement) a un membre 'viewController', qui est le contrôleur de vue racine pour l'application. C'est cet objet viewController que vous devez pousser à faire ce dont vous avez besoin. Dans l'application que je regarde en ce moment, j'ai un membre tabBarController dans le délégué de l'application, et je montre une vue d'alerte et/ou modifier l'index de l'onglet sélectionné quand une notification entre en jeu.

Je voudrais avoir votre application déléguer appelez une fonction sur votre contrôleur de vue principal lorsqu'un message arrive et que cette fonction affiche la vue d'alerte, puis faites les changements d'état nécessaires pour que le contrôleur de vue principal reflète la notification reçue.

Questions connexes