繁体   English   中英

使用Segues将UINavigationViewController切换到UITabBarController

[英]Switching UINavigationViewController to UITabBarController with Segues

我正在更改我的应用程序以使用UITabBarController而不是UINavigationViewController 我相应地替换了控制器,并成功使用选项卡启动了应用程序。 稍后在代码中,我遇到了使用segues的一些困难,其中类似

[self performSegueWithIdentifier:@"ImageViewController" sender:self];

不会产生错误

仅当由UINavigationController的实例管理源控制器时,才能使用推送选择

当我将UINavigationController嵌入到初始的FirstViewController ,上面的行工作正常。 我需要那条线在视图之间切换,并将一些数据传递给另一个视图控制器。

问题是,使用segue标识符转到SecondViewController隐藏TabBar导航(除非我再次将SecondViewController包装在UINavigationController ,依此类推)。 那不是解决方案。

问题 :如何在保持选项卡导航可见的情况下如何使用UITabBarController并继续使用segue?

在此处输入图片说明

“仅当源控制器由UINavigationController的实例管理时,才可以使用推送选择”

在我看来,您在导航控制器外部的某个地方使用了push播功能。 尝试在界面生成器中选择不在导航控制器内部的所有“搜索气泡”:

塞格泡泡

并在右侧窗格中检查segue的样式:

Segue设置

如果将样式设置为如上所述的值push ,则将其更改为modalcustom

将样式更改为模式

您的连接有问题。 如果您正在使用界面构建器(storyboard),则您的连接应如下所示。 见图片

请注意,您缺少UINavigation标题标头。 同样,每个视图控制器下方的灰色区域也意味着为UITabBarController的图像保留了空间

另一个问题是您的UIToolBar。 看起来像它位于显示UITabBar的顶部。 因为您已经具有UINavigationController和UITabBarController,所以可能会/可能不会使您的应用程序被苹果拒绝。 如果您需要该页面上的更多按钮/选项,请改用UIButtons。

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM