открыть конкретный контроллер представления, когда я нажимаю на локальное уведомление, представленное в цели c - PullRequest
0 голосов
/ 05 мая 2018

Я хочу, чтобы при нажатии на локальное уведомление, которое мне представляется, должен быть представлен конкретный контроллер представления, который DummyControler.

Я так и сделал, но когда я запускаю свое приложение, оно не работает.

Помогите мне перейти на конкретный контроллер вида, когда я нажимаю на уведомление

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

if (launchOptions != nil) {
    // Launched from local notification
    NSDictionary *notification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];


    UINavigationController * nav = (UINavigationController *)self.window.rootViewController;
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //NotificationPreviewViewConroller
    UIViewController *vc=[storyboard instantiateViewControllerWithIdentifier:@"DummyViewController"];
    [nav pushViewController:vc animated: false];

 }

 [[UIApplication sharedApplication] registerForRemoteNotifications];    
 return YES;
}

Ответы [ 2 ]

0 голосов
/ 05 мая 2018

Как вы сказали "Я хочу, когда я нажимаю на локальное уведомление, которое представляется мне, должен быть представлен конкретный контроллер представления, который является DummyControler."

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DummyControler *vc=[storyboard instantiateViewControllerWithIdentifier:@"DummyViewController"];
[self.window.rootViewController presentViewController:vc animated:true completion:^{
   //Completion code 
}];
0 голосов
/ 05 мая 2018

Ваш корневой контроллер имеет тип UIViewController, а не UINavigationController

Пожалуйста, замените

UINavigationController * nav = (UINavigationController *)self.window.rootViewController;
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //NotificationPreviewViewConroller
    UIViewController *vc=[storyboard instantiateViewControllerWithIdentifier:@"DummyViewController"];
    [nav pushViewController:vc animated: false];

К

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //NotificationPreviewViewConroller
    UIViewController *vc=[storyboard instantiateViewControllerWithIdentifier:@"DummyViewController"];
    [self.window.rootViewController pushViewController:vc animated: false];

Это будет работать.

Пожалуйста, измените вышеуказанный код, обновив его.

Обновление: -

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    //NotificationPreviewViewConroller
    UIViewController *vc=[storyboard instantiateViewControllerWithIdentifier:@"DummyViewController"];
    [self.window.rootViewController.navigationController pushViewController:vc animated: false];
...