4

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

有没有办法做到这一点?有没有更好的办法?

更新:

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

4

1 回答 1

2

您可以在一个 Storyboard 文件中创建三个不同的 ViewController,并为每个视图控制器指定一个 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您将容器视图链接到的一个。只需从分段控制操作中调用此方法。

于 2012-10-06T20:47:17.800 回答