ios - 从标签栏 Controller 分支出来?

标签 ios swift uitabbarcontroller

我有 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/

相关文章:

swift - 如何通过从 firestore 引用 userid 来检索用户照片?

ios - 为什么在退出嵌套方法后我的 Bool 值变为 false?

ios - 比较 UIViewController 实例

objective-c - 无法在选项卡栏 Controller 中重新加载 TableView

swift - 如何快速重新加载打开的标签栏

ios - View Controller 进入 UITabBarController 后台的问题

objective-c - 比较两个日期

ios - 在 iOS 上不使用 UIWebview 打开 word、excel 和 PDF 文件

ios - 滚动 UITableView 时仪器显示 "_NSContiguousstring"内存泄漏

ios - 如何知道 UITableViewCell 在编辑模式下是否被取消选择