【问题标题】:How to access the same view in different tabs如何在不同的选项卡中访问相同的视图
【发布时间】:2020-12-22 18:08:05
【问题描述】:

我对 Swift 很陌生,希望有人能帮我弄清楚关于 Navigation 的一些事情。

我有一个带有四个选项卡的选项卡栏控制器,每个选项卡都有自己的导航控制器。我想知道从这些选项卡中的任何一个访问“通用”视图而不导航到其他选项卡的最佳方式是什么。

想想 Twitter 应用程序:我可以从“主页”选项卡、“搜索”选项卡甚至“通知”选项卡访问显示用户个人资料信息的视图,当我单击返回按钮时,它将从当前选项卡的导航控制器堆栈中弹出这个“通用”视图控制器并返回到当前选项卡的上一个视图。如果我错了,请纠正我。

【问题讨论】:

  • 创建一个新的视图控制器实例(例如您的示例中的 ProfileViewController)并将其推送到适当的导航控制器堆栈。
  • 但我将如何在情节提要中设计它?它会是一个单独的视图控制器,与我为每个选项卡拥有的任何导航控制器都没有连接吗?
  • 您可以让多个导航控制器指向同一个“公共视图”。或者你可以没有任何东西连接到它并以编程方式实例化。听起来您可能更喜欢第一个选项。

标签: swift xcode swift5


【解决方案1】:

@JarWarren,我确实希望在情节提要中做到这一点,但我设法按照 Aaron 的建议以编程方式做到了:

我创建了 ProfileViewController 并没有将它链接到任何导航控制器,然后我为其“Storyboard ID”属性分配了一个值,这样我就可以使用 storyboard 实例化视图控制器。实例化视图控制器

guard let profileViewController = storyboard?.instantiateViewController(identifier: "ProfileViewController") as? ProfileViewController else {
    fatalError("Unable to instantiate view controller with provided identifier.")
}
    
navigationController?.pushViewController(profileViewController, animated: true)

谢谢你们俩的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多