IOS从标签栏项目执行segue

Posted

技术标签:

【中文标题】IOS从标签栏项目执行segue【英文标题】:IOS perform segue from tab bar item 【发布时间】:2016-09-03 09:56:50 【问题描述】:

我有一个包含 2 个项目的标签栏控制器。第一项是包含表格视图的 VC。单击一个单元格,执行到其他视图控制器(不是标签栏控制器上的项目)的转场。

问题是当 segue 完成时它会删除标签栏。 我怎样才能将项目 1 替换为其他 VC 并且仍然将标签栏保留在底部?

【问题讨论】:

你能给你看故事板吗? 您需要将您的Item1 VC嵌入到Navigationcontroller,嵌入navigationController后尝试一次。 是的,它成功了。你能说出为什么吗?没有导航控制器怎么办?谢谢顺便说一句! 检查我的答案。 【参考方案1】:

您需要将Item1VC 嵌入到NavigationController,这样当您从ItemVC 推送到MoviesViewController 时,它不会删除标签栏,如果您不嵌入NavigationController,它将从主要的ViewController在您的情况下是TabbarController,因此您无法看到标签栏。

【讨论】:

仍然,为什么它会推动 TabBarController,尽管 segue 来自项目 1 VC ?我不使用导航控制器的情况。 告诉你,如果你没有嵌入 NavigationController,那么它将从主 ViewController 推送,在你的情况下它是 TabbarController,这样你就看不到标签栏了。 现在明白了:) ? 是的,我已经明白了。然而,我的问题是为什么会这样?为什么它从 tabBarController 推送? segue 本身来自项目 1 VC,而不是来自 tabBarController 我不明白怎么解释你,但没有NavigationController它总是会从应用程序的主屏幕推送。

以上是关于IOS从标签栏项目执行segue的主要内容,如果未能解决你的问题,请参考以下文章

在不显示标签栏的情况下执行对另一个导航控制器的 segue

从 viewDidLoad() 执行 Segue

uitableviewcell segue 不起作用

IOS:推送segue后导航栏消失

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载

使用目标 c 后,UiViewController 不会从标签栏项目中快速加载