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标签栏点击显示模态视图黑屏的主要内容,如果未能解决你的问题,请参考以下文章