从当前标签栏控制器显示另一个标签栏控制器
Posted
技术标签:
【中文标题】从当前标签栏控制器显示另一个标签栏控制器【英文标题】:Show another Tab Bar Controller From Current Tab Bar Controller 【发布时间】:2017-01-25 15:18:56 【问题描述】:我的故事板中有以下视图控制器层次结构。 当我通过选择 tableview 单元格从 Groups 选项卡栏控制器的选项卡 1 执行 show segue 时,会显示 Lists 选项卡栏,但它有 Groups 的选项卡栏而不是它自己的选项卡栏。 当显示列表的控制器时,如何使它显示它自己的标签栏。谢谢
PS:我在层次结构中多了一个标签栏控制器。
【问题讨论】:
在第二个标签栏控制器之前尝试导航控制器 【参考方案1】:确保在界面构建器中为“列表选项卡栏控制器”设置情节提要 ID。 (下面的例子tabBar2
)
为TableViewController
和ListTabBarController
之间的segue 命名。 (下面的例子show1
)
添加以下代码以准备(用于segue):
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if segue.identifier == "show1"
let _ = navigationController?.popViewController(animated: true)
let storyborad = UIStoryboard(name: "Main", bundle: nil)
let tabVC2 = storyborad.instantiateViewController(withIdentifier: "tabBar2") as! UITabBarController
self.present(tabVC2, animated: true, completion: nil)
【讨论】:
我要推送,不在场。 就像 whatsapp 应用程序在点击聊天时所做的那样。它从标签栏控制器推送一个新的视图控制器。【参考方案2】:添加此代码
override func viewWillAppear(_ animated: Bool)
self.hidesBottomBarWhenPushed = true
override func viewWillDisappear(_ animated: Bool)
self.hidesBottomBarWhenPushed = false
在两个选项卡栏控制器的表视图控制器中都有效。现在每个 Tab bar Controller 的 View Controller 都有自己的 tab bar。
【讨论】:
以上是关于从当前标签栏控制器显示另一个标签栏控制器的主要内容,如果未能解决你的问题,请参考以下文章