【发布时间】:2019-05-07 01:51:21
【问题描述】:
我有以下 ViewController 结构,见下图。
每当我想从ViewController 1 移动到我使用self.tabBarController?.selectedIndex = indexNumber 的任何其他主控制器时
// for instance, this would take me to ViewController 3
self.tabBarController?.selectedIndex = 2
根据下图,当在 ViewController 1 中点击按钮时,如何以编程方式从 ViewController 1 转到 TargetViewController?
仅供参考 -
在下图中,我在ViewController 3 中显示了一个按钮,这只是为了显示故事板结构,实际的按钮点击将在ViewController 1 中发生
编辑:
根据Prashant Tukadiya 的回答,这是您的做法。
视图控制器 1
在ViewController 1 中,在您的点击事件中添加以下内容。
self.tabBarController?.selectedIndex = 2
let nav = (self.tabBarController?.viewControllers?[2] as? UINavigationController)
let vc = TargetViewController.viewController()
nav?.pushViewController(vc, animated: true)
TargetViewController
-
在您的
TargetViewController中添加以下类方法。类 func viewController() -> TargetViewController { 让故事板= UIStoryboard(名称:“主要”,捆绑:无) 返回 storyboard.instantiateViewController(withIdentifier: "targetViewControllerID") as!目标视图控制器 }
在情节提要 ID 字段中添加
targetViewControllerID。
【问题讨论】:
-
是按照您的图表从 Viewcontroller-1 到 ViewController-3 到 TargetViewController 吗?
-
从
ViewController 1直接到TargetViewController。按钮点击将发生在ViewController 1。 -
可以,但是如果你想从TargetViewController(
-
嘿,@fs_tigre 请检查我的回答可能会对你有所帮助。
-
如果是这样的话,@Sumitsingh 就是要走的路:)。 1. 选择第三个选项卡。 2.获取第三个标签的导航控制器。 3. 创建 TargetVC。 4. 推送到导航控制器以获取第三个选项卡。编辑:您可能需要在导航控制器上调用 popToRoot 以避免混乱。
标签: ios swift uinavigationcontroller tabbarcontroller