2015-09-30 3 views
0
- (void)application:(UIApplication *)application performActionForShortcutItem:(UIApplicationShortcutItem *)shortcutItem completionHandler:(void (^)(BOOL))completionHandler { 

    MainView *Main=[[MainView alloc]initWithNibName:@"MainView" bundle:nil]; 
    // This module to collect metrics for Notification received, Notification displayed 
    UINavigationController *NavBar=[[UINavigationController alloc] initWithRootViewController:Main]; 

    // react to shortcut item selections 
    NSLog(@"A shortcut item was pressed. It was %@.", shortcutItem.localizedTitle); 
    if([(NSString *)shortcutItem.localizedTitle isEqualToString:@"Store"]) 
    { 
     PurchaseView *purchaseViewController = [[PurchaseView alloc] initWithNibName:@"PurchaseView" bundle:nil]; 
     [NavBar pushViewController:purchaseViewController animated:YES]; 
    } 
} 

Я вхожу в если ([(NSString *) shortcutItem.localizedTitle isEqualToString: @ "Магазин"]) цикл и я вижу код выполнения. Но PurchaseView.xib никогда не загружается. У меня есть аналогичный код для Push Notification, и он работает, когда я нажимаю просмотр для загрузки.Посмотреть никогда не загружает

Любая помощь будет оценена по достоинству.

+0

BTW - стандартные соглашения об именах указывают, что имена переменных и методов должны начинаться с строчных букв. Только имена классов должны начинаться с прописных букв. – rmaddy

+0

Вы создаете 'NavBar', но, похоже, не являетесь частью иерархии контроллера представления. –

+0

Вы настраиваете навигационный контроллер, но никогда не показываете навигационный контроллер. – rmaddy

ответ

2

Проблема здесь в плохой иерархии представлений. Вы добавили свой контроллер изображения XIB в новый UINavigationController, который не существует нигде в иерархии представлений. Я считаю, что вы хотите сделать что-то вроде этого:

UINavigationController *navBar = (UINavigationController *) self.tabBarController.selectedViewController; 
[navBar pushViewController:purchaseViewController animated:YES]; 

Опять же, это гипотетический пример. Вы должны найти правильное значение UINavigationController в своей иерархии.

Смежные вопросы