从 UIViewController 过渡到 TabBarViewController
Posted
技术标签:
【中文标题】从 UIViewController 过渡到 TabBarViewController【英文标题】:Transition from UIViewController to TabBarViewController 【发布时间】:2016-04-10 11:05:18 【问题描述】:我已经搜索了 6 个小时的解决方案,但没有找到适合我情况的解决方案。我的故事板遵循以下流程:
TabBarViewController -> NavigationController ->TableViewController -> UIViewController(见下图)
当单击最后一个视图控制器(陌生人视图控制器)中的“通知”按钮时,我想以编程方式从该视图控制器(陌生人视图控制器)转换/切换到 TabBarViewController 的另一个子项(它是图中标题为“环顾四周”的控制器)。
每次我执行传统的转场:
-
选项 + 从陌生人视图控制器拖动 segue --> 环顾四周
视图控制器
给 segue 一个标识符
以编程方式使用 self.performSegueWithIdentifier。
我得到一个过渡。但是故事板中的“环顾四周”标签栏消失了,在模拟器中,一旦我点击“通知”,视图就会变为“环顾四周”视图,但下面的标签栏并没有反映这种变化,因为它仍然突出显示上一个选项卡。
我已经处理了 IBAction 函数中需要处理的所有其他处理。一旦用户点击“通知”,这只是正确地将用户发送到不同视图的问题。
对此的任何指导将不胜感激。
如果您对我有任何问题或疑虑,请随时提出。我是新手,愿意接受任何帮助。
【问题讨论】:
要让标签栏反映更改,您需要以编程方式对其进行更改 【参考方案1】:ViewController 是 NavigationBar 的子节点,而 NavigationBarController 是 TabBarController 的子节点。所以不需要 Segue,因为它会扰乱流程。
以编程方式尝试
@IBAction func notifyButtonTapped(sender: AnyObject)
tabBarController?.selectedIndex = 1
tabBarController?.tabBar.hidden = false
self.navigationController?.popToRootViewControllerAnimated(false)
【讨论】:
这绝对成功了!非常感谢你的帮助。除了研究这段代码之外,我认为我需要找到一个关于转换的可靠教程,以及何时以及何时不使用 segues。 还研究了包含——视图控制器的父子关系。以上是关于从 UIViewController 过渡到 TabBarViewController的主要内容,如果未能解决你的问题,请参考以下文章
为啥 [UIViewController presentModalViewController:animated:] 从左侧过渡模态视图?