ios标签栏点击显示模态视图黑屏

Posted

技术标签:

【中文标题】ios标签栏点击显示模态视图黑屏【英文标题】:ios tab bar click to show modal view get a black screen 【发布时间】:2014-07-08 09:04:42 【问题描述】:

你好我想实现这个动画效果(使用故事板),当用户点击一个标签栏(比如第二个标签栏项目)时,它会像模态视图一样显示相应的视图(向上显示到屏幕上)

我目前的方法是将标签栏控制器委托给标签栏并重写

-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
    NSLog(@"rawr");
    NSLog(@"inside tab bar did select, index is %d", self.selectedIndex);

    if (item == [self.tabBar.items objectAtIndex:1]) 
        //item.title = @"modal view";
        NSLog(@"going to promote as modal view");
        CBTab2ViewController* modalViewController = [[CBTab2ViewController alloc] init];
        [self presentViewController:modalViewController animated:YES completion:nil];
    

问题是,显示的视图是黑屏,不知道如何正确实现?

我的源代码可以在下面的链接中找到: https://www.dropbox.com/s/6rd6ek59xf0yiq4/testtabbar.zip

【问题讨论】:

这是因为你的 CBTab2ViewController 的背景是黑色的。如果您将 CBTab2ViewController 的背景颜色设置为橙色,您将看到橙色屏幕 =) 【参考方案1】:

换行:

CBTab2ViewController* modalViewController = [[CBTab2ViewController alloc] init];
[self presentViewController:modalViewController animated:YES completion:nil];

到这个(如果你的故事板名称是“MainStoryBoard”):

 UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                         bundle: nil];

CBTab2ViewController * modalViewController = (MyViewController*)[mainStoryboard 
                        instantiateViewControllerWithIdentifier: @"CBTab2ViewController"];

[self presentViewController:modalViewController animated:YES completion:nil];

【讨论】:

太棒了,它显示正确。目前在情节提要中,标签栏控制器和标签栏项目之间存在这种联系,它仍然显示在模态视图之前,您知道如何隐藏默认的标签栏视图吗?让过渡更自然,比如tumblr new post funciton @air_bob 你需要更多帮助吗? 比如tab2视图有这个hello标签,会显示2次,第一次是默认的tab bar行为,第二次是模态视图,我想让它显示为自然模态视图(可能有一个后退按钮来关闭它),用户单击后退按钮返回到上一个标签栏视图 @air_bob 所以添加 UINavigationController 来包装你的 UIViewController (CBTab2ViewController)。基本上,你需要创建一个 UITabBarController,每个选项卡都是一个 UINavigationController,这样你就可以为每个选项卡拥有自己的 UIViewController 堆栈。

以上是关于ios标签栏点击显示模态视图黑屏的主要内容,如果未能解决你的问题,请参考以下文章

从标签栏控制器模态显示视图

带有 ios 故事板的标签栏

TabBar App 模态视图控制器

如何重绘标签栏控制器显示的视图

模态视图控制器隐藏标签栏

标签栏控制器中的模态视图