Приложение 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. Это неМне нравилось, когда я пытался вернуться назад, и он также злился, когда пытался отследить толчки оттуда, почти как если бы не было контроллера навигации для вида, даже если все приложение встроено в контроллер навигации.
Большое спасибо за Вашу помощь. Если кто-нибудь может помочь мне понять это, ябуду в долгу перед вами.