容器视图和呈现子视图控制器

时间:2016-02-29 13:56:34

标签: objective-c uicontainerview childviewcontroller

有关使用objective-C的xCode中的容器视图的问题。当我向项目添加容器视图时,默认情况下它在父视图控制器中可见。我的目标是从开始时看不见它,并通过带有

的UIButton呈现它
addChildViewController:

方法。但为此,我需要它不要在那里开始。我可以通过将它的view.alpha设置为0来解决这个问题,但它看起来很长,有一些可见的东西,必须使它不可见,然后让它再次可见。这似乎不是最好的做法。 我已经检查了这个文档,发现了许多有趣的东西,但没有关于这个特定的主题。谁能指出我正确的方向?感谢

--------------------------- UPDATE ------------------- ---------------------

这是我到目前为止所做的。 (在h文件中有一个@property ChildViewController * vc,带有所需的导入)。它不起作用。就像在,它不会隐藏任何东西。

- (void)viewDidLoad {
    [super viewDidLoad];

    self.vc = [[ChildViewController alloc]init];
    [self addChildViewController:self.vc];
    [self.view addSubview:self.vc.view];
    self.vc.view.hidden = YES;
}

1 个答案:

答案 0 :(得分:0)

通过设置其alpha来隐藏视图控制器是完全正常的。它的优势在于您的视图控制器已准备就绪,因此应用程序会感觉更具响应性。另一种方法是使用'presentViewController'实际将其(模态地)添加到视图中。这可能是更正常的方式,但真的要么好。唯一一次它不是一个好主意,如果您显示/隐藏的视图控制器是非常处理器或内存密集型的,并且您需要您的应用程序更有效地使用资源,在这种情况下您应该以模态方式呈现和解除它比用alpha显示/隐藏它。