【发布时间】:2020-08-16 00:22:29
【问题描述】:
有 5 个选项卡,前 2 个选项卡需要打开同一个 VC,该 VC 将嵌入在导航控制器中。所有的 VC 都在故事板中。根据这两个中的哪一个被点击,我需要传递一个值(我想我可以解决这个问题),这将改变该 VC 的一些 UI 组件。
到目前为止,我所拥有的是:
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
let indexOfTab = tabBar.items?.firstIndex(of: item)
switch indexOfTab {
case 1:
// Open 1st VC with 'x' UI components
case 2:
// Open 1st VC with 'y' UI components
}
所以我可以毫无问题地打开标签页 3 到 5,但前 2 个标签页无法正常工作,因为它们嵌入在导航控制器中。
预期结果:点击标签索引 1,然后点击标签索引 2(或相反)应该打开第二个 VC(或第一个,视情况而定)作为根视图控制器
实际结果:点击索引 1,然后点击标签索引 2(或相反)打开标签索引 1 作为根视图控制器并推送标签索引 2。
如何获得预期的结果?
编辑: 我想我知道为什么会这样。这是因为我在情节提要中为这 2 个 VC 选择了 VC,然后我也试图以编程方式打开它们。无论如何要在故事板和编程的混合中做到这一点,还是我需要以编程方式重构整个标签栏?
【问题讨论】:
标签: ios swift uiviewcontroller uitabbarcontroller