1

我正在开发一个带有标签栏和导航的 iOS 应用程序。当我在第一个选项卡中按下一个按钮时,我希望它使用导航控制器加载第二个选项卡并推送下一个视图。有人可以帮忙吗?

4

4 回答 4

2

您可以通过编程方式选择选项卡

self.tabBarController.selectedIndex=1;
于 2012-08-27T10:41:52.183 回答
1

设置 selectedViewController:

self.tabBarController.selectedViewController = viewControllerYouWant;

例如,

self.tabBarController.selectedViewController 
    = [self.tabBarController.viewControllers objectAtIndex:2];
于 2012-08-27T10:41:40.530 回答
1

第一个选项卡中的按钮向选项卡控制器发送一条消息,告诉它选择第二个选项卡。然后你向第二个选项卡的 rootView 发送一条消息,它是一个导航控制器,并告诉它推送你使用第一个按钮在类中创建的某个对象。

于 2012-08-27T10:43:33.923 回答
1

这是Swift任何需要它的人的解决方案。我必须做同样的事情,只是从选项卡 2 中的嵌套视图控制器转到选项卡 4 中的另一个嵌套视图控制器。这是我如何实现的:

func goToHelpViewController(){
    dispatch_async(dispatch_get_main_queue(), { () -> Void in
        let desiredIndex:Int = 3
        self.tabBarController?.selectedIndex = desiredIndex
        let settingsStoryBoard = UIStoryboard(name: "SettingsSection", bundle: nil)
        let helpViewController = settingsStoryBoard.instantiateViewControllerWithIdentifier("HelpViewController") as! HelpViewController
        let settingsRootNavigationController = self.tabBarController?.viewControllers![desiredIndex] as! UINavigationController

        settingsRootNavigationController.popToRootViewControllerAnimated(false)
        settingsRootNavigationController.pushViewController(helpViewController, animated: true)
    })
}

斯威夫特 3.0

func goToHelpViewController(){
    DispatchQueue.main.async(execute: { () -> Void in
        let desiredIndex:Int = 1
        self.tabBarController?.selectedIndex = desiredIndex
        let settingsStoryBoard = UIStoryboard(name: "SettingsSection", bundle: nil)
        let helpViewController = settingsStoryBoard.instantiateViewController(withIdentifier: "HelpViewController") as! HelpViewController
        let settingsRootNavigationController = self.tabBarController?.viewControllers![desiredIndex] as! UINavigationController

        settingsRootNavigationController.popToRootViewController(animated: false)
        settingsRootNavigationController.pushViewController(helpViewController, animated: true)
    })
}
于 2015-12-04T03:22:53.740 回答