【发布时间】:2015-11-25 04:09:28
【问题描述】:
我有两个带有 UI(xib) 的控制器,它们是 A 和 B。现在我想在 C 上显示它们中的任何一个。为了从 A 和 B 中选择,我创建了一个新的控制器 D,它决定显示谁(A 或 B)。现在就像 C 呈现 D。而 D 将 A 或 B 作为子视图控制器。
从 C 我呈现 D 喜欢:
[self presentViewController:D animated:YES completion:nil]
并且 D 具有来自(A 或 B)的子视图控制器,例如:
[self addChildViewController:(A/B)];
[self didMoveToParentViewController:(A/B)];
现在的问题是没有调用子视图控制器的生命周期。 我也使用 [(A/B) beginAppearanceTransition:YES animated:NO];但是使用这只是第一次调用生命周期。 有谁知道要解决这个问题吗?
【问题讨论】:
-
“子视图控制器的生命周期没有被调用”是什么意思?
-
应该是D中的
[(A/B) didMoveToParentViewController:self]; -
假设“生命周期”意味着在每个 viewController 中调用 viewDidLoad(),你是否在 A 和 B viewDidLoad() 方法中正确调用了 [super viewDidLoad]?
-
"子视图控制器的生命周期没有被调用"是指A/B的viewwillappear和viewdidappear方法没有被调用。
-
@Mikael 是的,我叫 [super viewDidLoad]
标签: ios iphone uiviewcontroller