1

我正在使用 Storyboard 开发 iOS 5 应用程序。

我有UITabBarController3 个标签。每个选项卡都有自己的UINavigationController. UINavigationController第一个选项卡的有一个UITableViewController与另一个选项卡相连的第二个选项卡只有一个UIViewControllerUINavigationControllerUIViewController

我想要实现的是在第二个选项卡中发生某些操作时导航到UIViewController(第一个选项卡中的第二个视图) 。UINavigationControllerUIViewController

我尝试使用 push segue 来完成此操作,但导航堆栈与不同选项卡的视图控制器混合在一起(目标视图控制器中的后退按钮指向另一个选项卡的视图控制器)。

所以我想知道在不同选项卡的视图控制器之间完成这种转换的“正确方法”是什么。

任何帮助将不胜感激。

4

1 回答 1

0

您不能使用通知,因为第一个选项卡的第一个 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];                
     }
}
于 2012-09-24T08:15:21.530 回答