【问题标题】:iOS - go to second uiviewcontroller of some tab from another tabiOS - 从另一个选项卡转到某个选项卡的第二个 uiviewcontroller
【发布时间】:2012-09-15 15:56:55
【问题描述】:

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

我有 UITabBarController,它有 3 个标签。每个标签都有自己的UINavigationController。第一个选项卡的UINavigationController 有一个UITableViewController,它连接到另一个UIViewController 等。第二个选项卡的UINavigationController 只有一个UIViewController

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: ios uiviewcontroller uinavigationcontroller uitabbarcontroller storyboard


    【解决方案1】:

    您不能使用通知,因为第一个选项卡的第一个 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];                
         }
    }
    

    【讨论】:

    • 太棒了!解决了我的问题,非常感谢!我还有一个问题.. 我应该如何使用这种方法在目标视图控制器中设置一些数据。我的观点是在用户默认值中保存自定义对象不是一个好主意。还是我错了?
    • 如果您的数据有一个单独的模型类,您可以在那里设置一个或多个属性吗?或者如果是一个简单的应用程序,可能会将数据存储在 appDelegate 中。事实上,您也可以将上述首选项存储在其中任何一个中以避免 nsuserdefaults。
    • 好的。我可能会使用一些单例类来存储我的自定义对象。感谢您的帮助!
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    相关资源
    最近更新 更多