2014-01-21 19 views
2

我在更改我的应用程序以使用UITabBarController而不是UINavigationViewController。我相应地替换了控制器,并且应用程序成功启动。后来在代码中,我遇到了一些困难,使用塞格斯其中行喜欢将UINavigationViewController切换为带有分段的UITabBarController

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

将无法​​正常工作产生错误

“当源控制器由UINavigationController的一个实例管理只能用于推塞格斯

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

问题在于,使用SEGUE标识符去SecondViewController隐藏的TabBar导航(除非再次我在包裹UINavigationControllerSecondViewController等)。这不是解决方案。

问题:如何使用UITabBarController并仍然利用segues,同时保持选项卡导航可见?

enter image description here

回答

2

“推当源控制器由UINavigationController的一个实例管理塞格斯只能用”

像你使用的是push赛格瑞某处导航外界的声音对我控制器。尽量选择在Interface Builder中所有的 “赛格瑞泡沫” 是导航控制器内:

Segue Bubble

,并检查SEGUE的风格在右窗格中:

Segue Settings

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

Change style to Modal

+0

你说得对。这实际上解决了我在UITabBarController上使用segues的问题。 – Vad

1

也有一些是不对您的连接。如果您使用的是界面构建器(storyboard),那么您的连接应该看起来像这样。见图片

请注意您的地址不详。此外,每个视图控制器上的灰色区域意味着空间为UITabBarController的图像保留

另一个问题是您的UIToolBar。看起来就像坐在UITabBar的顶部。由于您已经拥有UINavigationController和UITabBarController,因此可能/不会让您的应用被苹果拒绝。如果你需要更多的按钮/选项,使它们成为UIButtons。

enter image description here

相关问题