我一直在嘗試一切工作。當應用關閉2個自定義項目,類型和ID時,我會收到通知。該類型應該告訴我要加載哪個視圖,並且該id應該告訴應用程序從數據庫中獲取哪一行。我正在試圖解決這個問題。應用程序didreceiveRemoteNotification和跳轉到特定視圖
我需要點擊通知,並讓我帶到相關記錄。到目前爲止,我已經用兩種不同的方法取得了成功,我將在下面概述。
我還要指出的是,我所知道的有效載荷從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.當我試圖回彈時它不喜歡它,當我嘗試從那裏繼續推進時它也很生氣,就好像沒有導航一樣即使整個應用程序嵌入在導航控制器中,也是如此。
非常感謝您的幫助。如果有人能幫我弄清楚這一點,我會很感激你。
酷。我明天將會處理這個問題,並且還有一個問題。我試圖在NSNotificationCenter上閱讀,我很困惑這到底是什麼。當我點擊通知時,我想創建一個名稱爲notificationReceived的通知中心,是否正確?然後從那裏,我創建一個監聽器在我的詳細信息視圖。然後我介紹詳細視圖。 NSNotificationCenter中實際的數據傳遞如何發生?或者我只是從userInfo傳入數據?如果後者,那麼我需要NSNotificationCenter。對不起,如果這是一個痛苦,只是想明白! :D –
嗨克里斯,NSNotificationCenter有一個發佈者訂閱模式。你可以使用userInfo參數傳遞數據。 NSNotificationCenter的美妙之處在於,它使得你的應用程序鬆散耦合並傳遞數據,而無需在發送者和接收者之間直接引用。 – travoux