Выполнение перехода после нажатия на кнопку уведомления

Мне нужно выполнить код для отображения уведомления, если приложение активно. Я поместил его в AppDelegate.m

Что я хочу сделать, так это выполнить переход (или переход) к контроллеру представления, когда пользователь нажимает на вторую кнопку. Как я могу сделать это из AppDelegate?

Я думаю, мне нужно установить navigationcontroller в appdelegate. Но я не смог этого добиться.

Спасибо

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    UIApplicationState state = [application applicationState];
    if (state == UIApplicationStateActive) {
        NSString *cancelTitle = @"Close";
        NSString *showTitle = @"Show";
        //NSString *message = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Social Dilemma"
                                                            message:@"Next round is ready to play!"
                                                           delegate:self
                                                  cancelButtonTitle:cancelTitle
                                                  otherButtonTitles:showTitle, nil];
        [alertView show];
    }
}

-(void) alertView: ( UIAlertView *) alertView
clickedButtonAtIndex: ( NSInteger ) buttonIndex {
    if (alertView.tag == 1)
    {
        //check the button index
        //create and display the other alert view (set the tag property here to 2)
    }
    else if (alertView.tag == 2)
    {

    }
}

person Ataman    schedule 05.08.2012    source источник


Ответы (1)


Как вариант, вы можете использовать uinavigationcontroller, это зависит от того, сколько контроллеров представления есть в вашем приложении. Проще говоря, вы можете попробовать вызвать текущий контроллер модального представления для корневого контроллера приложения: 1) Добавить в проект пользовательский UIViewController (.h, .m, .xib) (пример имени: MyViewController)

2 )

-(void) alertView: ( UIAlertView *) alertView
    clickedButtonAtIndex: ( NSInteger ) buttonIndex {
    if (alertView.tag == 1)
    {
       //check the button index
       //create and display the other alert view (set the tag property here to 2)
       MyViewController *first = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
       [self.window.rootViewController presentModalViewController:first animated:YES];
        [first release];
    }
    else if (alertView.tag == 2)
   {
         MyViewController *second = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
       [self.window.rootViewController presentModalViewController:second animated:YES];
        [second release];
   }
 }

Для использования контроллера uinavigation в приложении didFinishLaunchingWithOptions: вы можете программно создать навигационный контроллер, назначить его корневому контроллеру и вызвать метод представления предупреждений.

[self.window.rootViewController pushViewController:second (first) animated:YES];
person frankWhite    schedule 05.08.2012