我有一個帶有(〜45)uiviewControllers負載的故事板應用程序。無論是在後臺還是前臺,當信標觸發一個通知並且用戶接受它時,我想「推/繼續」到與該信標觸發器關聯的UIViewController。夠簡單。根據燈塔,我有大約10個不同的風險投資,我會繼續。正在尋找與管理iBeacon本地通知相關的最佳實踐建議
我有這個問題。當信標觸發通知時,用戶可以從字面上坐在我的45個UIViewCtrler中的任何一個上,因此我的每個UIViewController都必須具有與下面類似的內容(以及選擇器的代碼塊),以便採取行動通知和push/segue到另一個viewcontroller。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(showFoodMenuViewNow)
name:@"showfoodmenu" object:nil];
這將字面謎語我的故事板具有更VC間的推/ SEGUE連接比你能撼動的棍子。很亂。是否有某種方法可以消除所有視覺故事板遊戲或者以某種方式引入一個所有視圖繼續存在的單個「矢量視圖控制器」。那VC會評估本地通知並推送給相關的VC。
對此進行管理的建議最佳實踐是什麼?
希望我說得通。
UPDATE:
我交換路徑現在,試圖直接從我的appDelegate訪問的UINavigationController。我使用下面的代碼來做到這一點,雖然我的NC不是零,沒有視圖被推...
爲什麼這段代碼不能推動所需的viewcontroller?
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
nm_vcFoodMenu *fm = [sb instantiateViewControllerWithIdentifier:@"foodmenu"];
UINavigationController *nc = [sb instantiateViewControllerWithIdentifier:@"myNavController"];
if (nc == nil){
NSLog(@"nc is nil");
} else {
NSLog(@"nc is not nil so trying to push to foodmenu");
[nc pushViewController:(nm_vcFoodMenu *)fm animated:YES];
}
這是我的故事板和各種移動部件的描述。希望這會幫助你幫助我!
謝謝。
大衛,我也有我的appdelegate作爲iBeacon顯示/通知委託,並試圖做你的描述,但我無法在代碼中Segue公司,而不涉及在故事板的相應SEGUE。你能否提供一個從appDelegate(uilocalnotification委託)到指定的UIViewController的segue的片段?正如我上面提到的,爲了支持SWRevealViewController機制,我的一些segues是自定義類型的。 (它是開源模塊,提供了側滑出菜單)。我所有的uilocal通知都需要觸發這些類型的uiview控制器之一。 – phil
是的,上面實際上有一個片段 - 它非常簡單。我只是不停的NavigationController參考我的AppDelegate,然後調用:[navigationController pushViewController:newViewController動畫:是] – davidgyoung
我試過以上,但因爲我使用的情節串連圖板,沒有viewcontrollers我想「跳」到還不存在。我試圖得到我想要去的viewcontroller的句柄... - (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {nm_vcMenu * fm = [[UIStoryboard storyboardWithName:@「MainStoryboard 「bundle:NULL] instantiateViewControllerWithIdentifier:@」foodmenu「]; UINavigationController * nc = self.window.rootViewController.navigationController; [nc pushViewController:fm animated:NO]; //我沒有得到任何結果 - 有什麼想法? – phil