使用UISegmentedControl在UIViewControllers之间切换

时间:2014-07-01 13:13:28

标签: ios objective-c uiviewcontroller uisegmentedcontrol

对,我已经看了几个关于这个问题的SO问题,我发现很难在这里提出正确的解决方案。

要求

我有一个基于UITabBar的应用程序。其中一个选项卡的顶部有一个UINavigation控制器,UISegmentedControl,允许用户在三个不同的视图之间切换。 每个视图都有一个UITableView,允许用户导航到另一个视图。应将这些视图推送到导航控制器。

问题

现在关于该主题的所有SO问题和答案都显示了如何在视图之间切换。但是我需要切换到的视图,以允许将另一个视图推送到导航堆栈。我不确定这是否可行。我想到了UIViewController包含 - 但是这会显示一个视图被推到堆栈中的一个较小的窗口,屏幕的界限。不是我想要的。

我是如何通过故事板和UIViewControllers解决这个问题的?

更新

以下是我要做的事情:在屏幕截图中,容器区域是我需要加载其他视图控制器的地方。 UISegment控件无法进入导航栏,因为该空间用于其他内容。那么为什么我认为UIViewController遏制可能会更好?

enter image description here

2 个答案:

答案 0 :(得分:1)

因此即使不使用单独的TableViewControllers,您也可以使用默认隐藏的不同自定义UIViews,并在选择相应按钮时显示。不幸的是,这将使你在同一个VC中拥有所有三个视图的逻辑。

要解决此问题,您可以尝试通过向{{1帮助保持代码清洁。

答案 1 :(得分:0)

用户UITabBarController并隐藏标签栏。

- (void)viewDidLoad
{
     self.tabBar.hidden = YES;
}

使用方法valueChanged

绑定段控件
- (void)valueChanged:(UISegmentedControl *)seg
{
    if ([seg.selectedSegmentIndex == 0]) {
        self.selectedIndex = 0;
    } else if ([seg.selectedSegmentIndex == 1] {
        self.selectedIndex = 1;
    }
}

我通过这种方式实现这一目标,我希望这会有所帮助。