我有 3 个 View Controller 。两个我已经连接到一个选项卡栏 Controller 和一个当用户在我的选项卡 View 中的第二个 View Controller 上选择一个单元格时我想访问的。
我希望当用户在第三个“详细信息”页面上点击“后退”时,用户将返回到第二个 View 。
当我通过添加一个按钮并返回到第二个 VC 来执行此操作时,选项卡栏消失了。我尝试在我的 viewDidAppear 中取消隐藏标签栏,但我猜离开标签栏 Controller 会弄乱导航。
我尝试创建一个类似于“didHitBack”的变量,并在第 3 个 View 的“后退”按钮上创建一个回到选项卡栏 Controller 的 segue,如果“didHitBack”为真,我会执行
_ self.tabBarController?.selectedIndex = 1
这会将我带到第二页,但它正在加载第一个 View ,然后转到看起来很糟糕的第二页。
我在想也许有一种方法可以执行“didHitBack”并将选项卡栏的初始 View Controller 设置为第二个或类似的东西,但这一切似乎都是错误的。
是否有“正确”的方法来做到这一点?
回顾一下,我有连接到选项卡栏 Controller 的 VC1 和 VC2,我在 VC2 上有一个 TableView ,在 didSelectRow 上我要去 VC3,我不想成为选项卡式 View Controller 的一部分,当我回击 VC3 时,我想回到 VC2。
最佳答案
如果你想构建一个导航堆栈,你应该将你的 View Controller 嵌入到 UINavigationController
因此您的标签栏将连接到 VC1 和 NavVC。 NavVC 的 Root View Controller 将是 VC2。
然后,您可以在 tabBar 的范围内使用导航 Controller 将新的 View Controller 插入堆栈(或弹出 View Controller 以返回)。
关于ios - 从标签栏 Controller 分支出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758019/