【发布时间】:2021-02-05 08:35:22
【问题描述】:
我正在 Xcode 中使用 Swift 编写应用程序,但我正在为一件事而苦苦挣扎。
我有一个 UITabBarController。其中有 2 个选项卡,比如说“主页”和“新闻”。
- 在主页选项卡中,有一个导航控制器,一堆内容,一些按钮与同一选项卡中的其他视图控制器相连接。基本的东西。
- 在“新闻”选项卡中,有另一个导航控制器和一个显示(您猜对了)一堆新闻的 TableView。当我点击新闻时,我会转到 NewsDetails 视图控制器。也是基本的东西。
现在,我的问题来了。 在主页中,我显示最近的新闻,并且只有这一条。现在,如果我点击这个新闻,我会转到 NewsDetails 视图控制器,但我会留在 Home 选项卡和它自己的 Navigation Controller 中。 我想做的是继续使用 NewsDetails,但在 News Tab 和 News Navigation Controller 中。
总而言之,我正在寻找的行为如下:当我单击主页中的最新新闻时,我希望最终进入“新闻”选项卡,查看新闻详细信息。从那里,如果我点击返回按钮,我将返回新闻标签根目录,而不是主页标签。
我希望我设法让自己足够清楚。任何帮助、指导或领导将不胜感激。
谢谢!
【问题讨论】:
-
您需要创建
UITabViewController的子类并使用它。您可以在子类中实现prepare(for:sender:),并在嵌入segue 触发时(当标签栏加载时)获取对新闻导航控制器的引用。然后你可以使用你的主视图控制器的委托让标签栏控制器子类知道它应该切换标签并告诉新闻视图控制器显示适当的细节。