模态视图控制器的生命周期?

时间:2014-01-11 12:14:38

标签: ios objective-c uiviewcontroller modalviewcontroller

我已经阅读了Apple的design patterns文档和其他一些指南,还有一些我无法理解的内容。

我遇到了在viewControllers之间传递变量的问题,我看到了delegate选项。 我已经意识到,如果你从viewControlA转到viewControlB,并且你需要将一些mutableArray从B更新为A,你可以从B发布一个代表,A会得到它。

但是,如果A可以听到代表,那意味着在我去B后A仍然活着。 我以为只有当你在push之间观看时,前一个仍然存在,但当过渡为modal时,前一个场景实际上已经死了。

每个视图控制器类的生命周期是多少?他们总是活着吗?

1 个答案:

答案 0 :(得分:2)

如果您有两个UIViewController名为AB,并且您希望以模式方式显示B,则A将保留在内存中。没有人说A要删除(在代码的其他部分删除它之前这是真的。)

因此,A可以回复B,直到后者(B)仍然是presentedViewController A的{​​{1}}。< / p>

关于presentingViewController,你可以避免它。例如,假设delegateA属性为

B

在将@property (nonatomic, strong) NSMutableArray* myArray; 作为模态控制器之前,您可以说

B

现在他们将触摸相同的阵列。当B* b = // alloc init b.myArray = [self myArray]; // present modally B 被解除时(如果您没有引用它将从内存中释放),在BmyArray内),您会在A中找到修改。

显然这只是一个例子。这不是不使用B的建议。

如需进一步参考,我只需查看Apple Doc。中的Presenting View Controllers from Other View Controllers