簡體   English   中英

didReceiveRemoteNotification從TabbarController推送視圖控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM