我正在开发一个应用程序,允许将两个媒体库加载到同一个标签中。它们具有单独的XIB文件并且是这样加载的。但是,一旦我使用分段控件切换视图,UITabBar
就会消失。
这就是我切换视图的方式:
//Switch Views
- (IBAction)segmentSwitch:(id)sender
{
if([sender selectedSegmentIndex] == 0)
{
MediaViewController *vc = [[MediaViewController alloc] initWithNibName: @"MediaView" bundle:nil];
vc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController: vc animated: YES];
}
else if([sender selectedSegmentIndex] == 1)
{
MediaViewControllerTwo*v2 = [[MediaViewControllerTwo alloc] initWithNibName: @"MediaViewTwo" bundle:nil];
v2.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController: v2 animated: YES];
}
}
答案 0 :(得分:2)
您的视图消失的原因是您正在其上显示模态视图控制器:
[self presentModalViewController: v2 animated: YES];
如您所知modal view controller takes the whole display空间。
您想用分段控件完成什么?
编辑:为了更改UITabBar中显示的当前视图,您有几个选项。一个是简单地在当前视图中添加子视图;在视图控制器中执行:
[self.view addSubview: vc.view];
[vc viewWillAppear:NO];
[vc viewDidAppear:NO];
需要调用viewWillAppear
和viewDidAppear
,在这种情况下,框架不会为您调用它们。
我假设您使用分段控件来控制视图的子区域(即,您的视图的上半部分是分段控件,下半部分是其他内容)。在这种情况下,我只是尝试替换位于分段控件下面的子视图。技术是一样的。
阅读评论后,您可以将一个表替换为另一个表。或者更好的是,将它们都添加为子视图(全帧),并根据分段控件选择隐藏其中一个。
答案 1 :(得分:0)
使用UITabBarController
时,不应以模态方式呈现它们。它们不是正确的工具。您应该切换附加到与选项卡关联的视图控制器的视图。你将如何做到这取决于你如何建立标签栏。