iPhone - приложение все еще работает, получает push-уведомление = сменить представление - PullRequest
0 голосов
/ 30 июля 2010

Я пытаюсь изменить представление при получении push-уведомления, пока приложение еще работает.Я пытался использовать это в AppDelegate.m

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

Но это не сработало.Я даже не могу запустить приложение снова.поэтому я предполагаю, что это неправильный способ сделать это.

Есть идеи, ребята?Буду премного благодарен.

Ответы [ 2 ]

0 голосов
/ 12 ноября 2010

Нам не хватает некоторого контекста о вашем приложении, но ваша основная проблема в том, что это объект делегата приложения, который получает уведомление, а не контроллер представления. Вот почему вы не можете просто сделать [selfsentModalViewController: someViewController];

Я думаю, что это фрагмент вашего собственного ответа, который дает то, что вам нужно: ваш делегат приложения (предположительно) имеет член 'viewController', который является корневым контроллером представления для приложения. Это тот объект viewController, который вы должны заставить делать то, что вам нужно. В приложении, на которое я сейчас смотрю, у меня есть член tabBarController в делегате приложения, и я показываю представление оповещения и / или изменяю индекс выбранной вкладки при поступлении уведомления.

Я бы попросил делегата вашего приложения вызывать функцию на вашем контроллере основного представления при поступлении сообщения, и эта функция отображала бы представление с предупреждением, а затем делать любые изменения состояния, которые вам нужно сделать, чтобы контроллер основного представления отображал полученные извещение.

0 голосов
/ 30 июля 2010

решаемые *** Я сделал это так -> Сначала я показывал предупреждение (что мне было нужно в любом случае) затем использовали метод

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