在我的应用程序中,我有一个标签栏控制器,可启用多个标签。其中一个标签是下图所示的标签:
按“i”按钮,打开第二个视图。按“后退”按钮,再次打开第一个视图。这些转换是使用Storyboard Segues进行的。
问题是,如果我使用模态样式进行Segue,则标签栏会消失。 我的问题是:只有推文样式Segues可用于Tab栏?有没有办法实现Modal过渡并使用Storyboard保持标签栏可见?
提前致谢,yassa
答案 0 :(得分:0)
这与UINavigationController
的情况相同。使用push
以外的任何类型的seque都不会保留导航栏或标签栏。 UINavigationController
的解决方法是将详细信息视图嵌入其自己的UINavigationController
中。如果你考虑一下,这是有道理的。模态序列的目的是向用户呈现一些可操作的,可能是偏离主题的信息。从用户体验理论上讲,通常只提供一些用例。
对于标签栏,在希望标签栏保持可见时使用模态标签并没有多大意义,因为这样可以让用户离开模态视图。话虽如此,您可以尝试使模态视图缩短高度,以便在将标签栏推入堆栈时不会覆盖标签栏。这是未经测试的,但在我看来似乎有可能。
答案 1 :(得分:0)
使用自定义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];
}