[英]didReceiveRemoteNotification push viewcontroller from tabbarcontroller
我有一個可以接收推送通知的應用程序。
在我的情節提要中,我有一個tabbarcontroller,它具有4個詳細視圖(嵌入了導航控制器)。
按下按鈕后,便可以設置正確的標簽欄控制器。 但是我想把整個內容都深入到細節視圖中。
NSString *storyboardId = @"TabFirst";
self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:storyboardId];
UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
tabBar.selectedIndex = 2;
有了這個我得到正確的tabview。 但是如何將其推送到正確的詳細視圖? 而且我還需要發送一個對象(以便它可以顯示正確的數據)。
謝謝。
我認為您尚未正確理解UINavigationBarController。 就像堆棧一樣,在其中壓入和彈出元素。
是否有可能直接將第8個元素壓入堆棧而無需在堆棧中放置前7個元素?
您需要創建每個視圖控制器的實例,然后通過算法手動推送它。
-(void)didReciveRemoteNotification{ [tabBarController.viewcontroller objectAtIndex:2/*Index of your navigation controller*/]; // once you get a refrence to you nav you have to push your root view controller and call // call messages on each and every view controller which does the transition. UITableViewController *tableVC = [[UITableViewController alloc] init]; [self.navigationController pushViewController:tableVC]; // trigger your events simply with a single message and let every view // controller load it successive viewcontrollers. [tableVC didSelectRowAtIndex .. ]; }
這也會加載您的數據。 簡而言之,您需要用戶觸發的事件觸發鏈。 但是您將獲得來自推送通知的數據,該數據將告訴您如何加載這些視圖。 通常,如果您已遵循適當的責任模式或MVC模式,則觸發該事件鏈並不難。 如果這對您來說很困難,那么您設計控制器的方式就會出問題。
總結:根據從推送通知接收的數據,通過一系列消息加載應用程序的狀態。
注意:另外,如果您發現其他可能破壞系統不變性的方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.