我正在更改我的应用以使用UITabBarController
而不是UINavigationViewController
。我相应地更换了控制器,app成功启动了标签。在代码的后面,我遇到了使用像
[self performSegueWithIdentifier:@"ImageViewController" sender:self];
无法生成错误
“推送segues只能在源控制器由UINavigationController实例管理时使用”
当我将UINavigationController
嵌入到初始FirstViewController
时,上面的行正常工作。我需要该行在视图之间切换并将一些数据传递给另一个视图控制器。
问题是使用segue标识符转到SecondViewController
会隐藏TabBar导航(除非我再次在SecondViewController
中包裹UINavigationController
,依此类推)。那不是解决方案。
问题:如何使用UITabBarController
并在保持标签导航可见的同时仍然利用segue?
答案 0 :(得分:2)
“Push segues只能在源控制器由UINavigationController实例管理时使用”
听起来就像你在导航控制器外的某处使用push
segue一样。尝试在界面构建器中选择导航控制器中不的所有“segue bubbles”:
并在右侧窗格中检查segue的样式:
如果样式设置为值push
,如上所示,请将其更改为modal
或custom
:
答案 1 :(得分:1)
你的联系有问题。如果您正在使用界面构建器(故事板),那么您的连接应如下所示。见图
请注意,您缺少UINavigation标题标题。此外,每个视图控制器下方的灰色区域表示为UITabBarController
的图像保留了空间另一个问题是你的UIToolBar。看起来它坐在UITabBar将显示的顶部。由于您已经拥有UINavigationController和UITabBarController,因此苹果可能/可能不会拒绝您的应用。如果您在该页面上需要更多按钮/选项,请改为使用UIButtons。