【问题标题】:Switch Views Within UITabBar Tab Using Segmented Control使用分段控件在 UITabBar 选项卡中切换视图
【发布时间】:2011-09-07 02:03:35
【问题描述】:

我正在开发一个允许将两个媒体库加载到同一个选项卡中的应用程序。它们有单独的 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];
   }
}

【问题讨论】:

    标签: iphone uitabbarcontroller uitabbar uisegmentedcontrol


    【解决方案1】:

    你的视图消失的原因是你在它上面显示了一个模态视图控制器:

        [self presentModalViewController: v2 animated: YES];
    

    如您所知,它有一个 modal view controller takes the whole display 空间。

    你想用你的分段控件来完成什么?

    编辑:为了更改UITabBar 中显示的当前视图,您有几个选项。一种是简单地在当前视图中添加一个子视图;在你的视图控制器中做:

    [self.view addSubview: vc.view];
    [vc viewWillAppear:NO];
    [vc viewDidAppear:NO];
    

    viewWillAppearviewDidAppear 的调用是必需的,在这种情况下框架不会为你调用它们。

    我假设您使用分段控件来控制视图的子区域(即,您的视图具有分段控件所在的上部和具有其他内容的下部)。在这种情况下,我会简单地尝试替换位于分段控件下方的子视图。技术是一样的。

    阅读您的评论后,您可以将一张桌子替换为另一张桌子。或者更好的是,将它们都添加为子视图(全帧),然后根据分段控件选择隐藏其中一个。

    【讨论】:

    • 对不起,我是 iPhone 开发的新手,但我一直在学习各地的教程和阅读书籍。如何不使用模态视图控制器?
    • 您能否提供更多有关您正在尝试做的事情的详细信息?您的 UITabBar 管理哪些视图?你的分段控制是什么类型的?
    • 标签栏管理单个和导航视图。分段控件还将管理两个表视图,每个表视图都有一个详细视图。
    • 非常感谢您的帮助!
    【解决方案2】:

    在使用UITabBarController 时,您不应以模态方式呈现它们。它们不是正确的工具。您应该切换附加到与选项卡关联的视图控制器的视图。你将如何做取决于你如何为你的标签栏建模。

    【讨论】:

      猜你喜欢
      • 2011-01-08
      • 2013-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多