簡體   English   中英

iOS-從另一個選項卡轉到某個選項卡的第二個uiviewcontroller

[英]iOS - go to second uiviewcontroller of some tab from another tab

我正在使用Storyboard開發iOS 5應用。

我有3個選項卡的UITabBarController 每個選項卡都有其自己的UINavigationController 第一個選項卡的UINavigationController具有一個與另一個UIViewController等連接的UITableViewController 。第二個選項卡的UINavigationController僅具有一個UIViewController

我要實現的是,當第二個選項卡的UIViewController中發生某些動作時,導航到UIViewController (第一個選項卡的UINavigationController的第二個視圖)。

我已經嘗試使用推播功能來完成此操作,但隨后導航堆棧與不同選項卡的視圖控制器混合在一起(目標視圖控制器中的后退按鈕指向另一個選項卡的視圖控制器)。

因此,我想知道在不同選項卡的視圖控制器之間完成這種轉換的“正確方法”是什么。

任何幫助將不勝感激。

您不能使用通知,因為第一個選項卡的第一個viewController甚至可能不會加載。

因此,您可以使用的一種方法是保存一個首選項(也許是nsuserdefaults),然后將選項卡切換到第一個選項卡,然后在第一個選項卡的第一個viewController中,在viewDidAppear或viewWillAppear中檢查此首選項,如果已設置,則重置該首選項(下一次)並自動導航(推送)到第二個viewController。

BOOL shouldAutoPush=YES;
[[NSUserDefaults standardUserDefaults] shouldAutoPush forKey:@"shouldAutoPush"];
[[NSUserDefaults standardUserDefaults] synchronize]; 
[self.tabBarController setSelectedIndex:0];

-(void)viewWillAppear:(BOOL)animated {
     if ( [[NSUserDefaults standardUserDefaults] objectForKey:@"shouldAutoPush"] ) {
        BOOL shouldAutoPush=NO;
        [[NSUserDefaults standardUserDefaults] shouldAutoPush forKey:@"shouldAutoPush"];
        [[NSUserDefaults standardUserDefaults] synchronize]; 
        [self.navigationController pushViewController:secondViewController animated:YES];                
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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