我正在使用Storyboard开发iOS 5应用。
我有UITabBarController
,其中有3个标签。每个标签都有自己的UINavigationController
。第一个标签的UINavigationController
有一个UITableViewController
,它与另一个UIViewController
相等。第二个标签的UINavigationController
只有一个UIViewController
。
我希望实现的是在第二个标签的UIViewController
中发生特定操作时导航到UINavigationController
(第一个标签的UIViewController
中的第二个视图)。
我尝试使用push segue完成此操作,但导航堆栈与不同选项卡的视图控制器混合(目标视图控制器中的后退按钮指向另一个选项卡的控制器)。
所以我想知道在不同标签的视图控制器之间完成这种转换的“正确方法”是什么。
非常感谢任何帮助。
答案 0 :(得分: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];
}
}