Приложение didreceiveRemoteNotification и переход к конкретному виду

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

Мне нужно нажать на уведомление, чтобы оно привело меня к соответствующей записи. До сих пор я был почти успешным с двумя различными методами, которые яОбрисую ниже.

Я также должен отметить, что я знаю, что полезная нагрузка корректно работает с APNS, поскольку яотладили до смерти :)

Первое, что я попробовал, было следующим:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{

    NSString *itemType = [[userInfo objectForKey:@"T"] description];
    NSString *itemId = [[userInfo objectForKey:@"ID"] description];

    self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // type 1 = call, type 2 = contact
    if ([itemType isEqual: @"1"]) {
        Leads_CallsDetailViewController *callView = [[Leads_CallsDetailViewController alloc] init];
        [callView displayItem:itemId];
        [self.window addSubview:callView.view];
        [self.window makeKeyAndVisible];
    } else if([itemType isEqual: @"2"]) {
        Leads_ContactsDetailViewController *contactView = [[Leads_ContactsDetailViewController alloc] init];
        [contactView displayItem:itemId];
        [self.window addSubview:contactView.view];
        [self.window makeKeyAndVisible];
    }
}

С этим у меня есть метод в подробных представлениях, названный displayItem, который я собирался использовать, чтобы получить данные из API и затем отобразить их. Это что-то сделало, но это выглядело так, будто вид никогда не загружался. У меня есть прокрутка и различные кнопки на странице, но все, что когда-либо загружалось из addSubview, было фоновым изображением. На самом деле ничего не произошло, чтобы полностью загрузить вид. Я не былне уверен, как справиться с этим.

Второе, что я попробовал, это перейти непосредственно к представлению, как это:

NSString *storyboardId = @"Leads_Calls_SB";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *initViewController = [storyboard instantiateViewControllerWithIdentifier:storyboardId];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = initViewController;
[self.window makeKeyAndVisible];

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

Большое спасибо за Вашу помощь. Если кто-нибудь может помочь мне понять это, ябуду в долгу перед вами.

Ответы на вопрос(1)

Ваш ответ на вопрос