2010-07-30 45 views
0

我试图在应用程序仍在运行时收到推送通知后更改视图。我试图在AppDelegate.miPhone - 应用程序仍在运行,接收推送通知=更改视图

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

使用它。但是它没有工作。我甚至无法再启动应用程序。所以我猜这是错误的做法。

任何想法的家伙?我会很感激。

回答

0

解决*** 我就是这么做的 - > 我第一次展示的警报视图(我需要反正) 然后使用

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

我们缺少的一些方面的方法你应用程序,但您的基本问题是它是接收通知的应用程序委托对象,而不是视图控制器。这就是为什么你不能只做[self presentModalViewController:someViewController];

我认为这是从你自己的答案的片段,让你需要的东西:你的应用程序代理(大概)有一个“的viewController”成员,这是应用程序的根视图控制器。这就是viewController对象,你需要引导它去做任何你需要的东西。在我现在看到的应用程序中,我在应用程序委托中有一个tabBarController成员,并且在通知进入时显示警报视图和/或更改选定选项卡索引。

我想让您的应用程序委托在消息进入时在主视图控制器上调用函数,并使该函数显示警报视图,然后执行任何状态更改以使主视图控制器反映接收到的通知。

相关问题