故事板,视图控制器和分段控件

时间:2012-10-06 17:39:37

标签: ios

我在故事板中有一个带有分段控件的视图控制器。分段控件从三种不同类型的显示器切换视图。为此,我隐藏/取消隐藏各种视图元素。这很有效,但很难在Xcode storyboard编辑器中进行编辑。我希望能够拥有可以打开和关闭的图层,具体取决于我正在处理的视图部分。

有办法做到这一点吗?还有更好的方法吗?

更新

我倾向于在单独的xib文件中创建三个视图,并根据需要将它们加载到视图控制器视图中。

1 个答案:

答案 0 :(得分:2)

您可以在一个Storyboard文件中创建三个不同的ViewControllers,并为每个ViewControllers分配一个Storyboard ID。不要用segue连接它们。然后删除要显示它们的容器视图,并删除自动生成的ViewController。

然后,对我来说,以下代码有效:

-(void)loadSubviewAtIndex:(NSUInteger)idx;
{
    [self.subviewController.view removeFromSuperview];
    [self.subviewController removeFromParentViewController];

    NSString* subviewIdentifier = [self.subviewIdentifiers objectAtIndex:idx];
    subviewController = [self.storyboard instantiateViewControllerWithIdentifier:subviewIdentifier];
    CGRect frame = self.view.bounds;
    subviewController.view.frame = frame;

    [self.view addSubview:self.subviewController.view];
    [self addChildViewController:self.subviewController];
}

这里我假设您有一个属性subviewIdentifiers,它是一个NSArray,一个隐含的分段控制索引到Storyboard ID的映射,以及一个IBOutlet UIViewController* subviewController,它将容器视图链接到。只需从分段控制操作中调用此方法即可。