![](/img/trans.png)
[英]Segue/Transition between two views in a storyboard w/o a NavigationController
[英]Transition between Views with Storyboard
在我的应用程序中,我有一个启用了多个标签的标签栏控制器。 这些选项卡之一是下图所示的选项卡:
通过按下“ i”按钮,打开第二个视图。 通过按下“返回”按钮,将再次打开第一个视图。 这些过渡是通过Storyboard Segues进行的。
问题是,如果我对Segue使用Modal样式,则选项卡栏会消失。 我的问题是:在Tab栏的情况下只能使用Push风格的Segues吗? 有没有一种方法可以实现模式转换,并使故事板保持选项卡栏可见?
在此先感谢,yassa
使用自定义segue来执行此操作。
并使用pushViewController代替presentModalViewController。
- (void)perform
{
// Add your own animation code here.
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO];
}
改成
- (void)perform
{
// Add your own animation code here.
[self.sourceViewController.navigationController pushViewController:destination animated:NO];
}
这种情况与UINavigationController
相同。 使用除push
以外的任何其他命令都不会保留导航栏或标签栏。 UINavigationController
的解决方法是将详细信息视图嵌入其自己的UINavigationController
。 如果您考虑一下,这是有道理的。 模态序列的目的是向用户提供一些可行的信息,也许是不在主题范围内的信息。 从UX理论上讲,您通常只会提供用例之外的几种方法。
对于选项卡栏,在希望使选项卡栏保持可见的同时使用模式定序并没有多大意义,因为这将允许用户导航到您的模式视图。 话虽如此,您可以尝试将模式视图的高度缩短,以使其在推入堆栈时不会覆盖选项卡栏。 这未经测试,但在我看来似乎是可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.