0

我在父视图控制器 A 中有一个视图控制器 B。两个视图同时显示。

在视图控制器 B 中,我尝试使用以下方法呈现一个新的视图控制器:

- (void) buttonClicked:(id)sender
{
    MyViewcontroller *vc = [[MyViewcontroller alloc] init];
    [self presentViewController:vc animated:YES completion:nil];
}

视图控制器在 iOS6 中正确显示,我MyViewController使用以下方法关闭:

- (IBAction)backButtonPressed:(id)sender {
    [self dismissViewControllerAnimated:YES completion:nil];
}

但是 iOS 5.1 和 iOS 6 之间是有区别的。

QN1:解除后,视图控制器 A 和 BviewDidAppear不会被调用。它应该被触发吗?

QN2:我无法MyViewController在 iOS 5.1.1 中出现。除非我将视图控制器 B 作为子容器添加到 A:

[self addChildViewController:vcB];
[self.view addSubview:vcB.view];

通过添加子控制器,我可以MyViewController显示和查看控制器 A&B viewDidAppear 将在它被解雇时被调用。viewDidAppear使用 iOS6 时也会调用。

我不确定这里发生了什么。

4

1 回答 1

1

答案 1:viewDidAppear当您关闭模态视图时不会被调用。

答案 2:如果您MyViewController从“ View-controller B”呈现“”,那么视图控制器 B 的视图应该在视图层次结构中。

从这里您可以获得更多信息。如何从其他视图控制器呈现视图控制器

于 2013-01-11T09:54:53.943 回答