对,我已经看了几个关于这个问题的SO问题,我发现很难在这里提出正确的解决方案。
要求
我有一个基于UITabBar的应用程序。其中一个选项卡的顶部有一个UINavigation
控制器,UISegmentedControl
,允许用户在三个不同的视图之间切换。
每个视图都有一个UITableView,允许用户导航到另一个视图。应将这些视图推送到导航控制器。
问题
现在关于该主题的所有SO问题和答案都显示了如何在视图之间切换。但是我需要切换到的视图,以允许将另一个视图推送到导航堆栈。我不确定这是否可行。我想到了UIViewController包含 - 但是这会显示一个视图被推到堆栈中的一个较小的窗口,屏幕的界限。不是我想要的。
我是如何通过故事板和UIViewControllers解决这个问题的?
更新
以下是我要做的事情:在屏幕截图中,容器区域是我需要加载其他视图控制器的地方。 UISegment控件无法进入导航栏,因为该空间用于其他内容。那么为什么我认为UIViewController遏制可能会更好?
答案 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;
}
}
我通过这种方式实现这一目标,我希望这会有所帮助。