我正在开发一个带有标签栏和导航的 iOS 应用程序。当我在第一个选项卡中按下一个按钮时,我希望它使用导航控制器加载第二个选项卡并推送下一个视图。有人可以帮忙吗?
问问题
3226 次
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 回答