我已经阅读了Apple的design patterns
文档和其他一些指南,还有一些我无法理解的内容。
我遇到了在viewControllers
之间传递变量的问题,我看到了delegate
选项。
我已经意识到,如果你从viewControlA
转到viewControlB
,并且你需要将一些mutableArray
从B更新为A,你可以从B发布一个代表,A会得到它。
但是,如果A
可以听到代表,那意味着在我去B
后A仍然活着。
我以为只有当你在push
之间观看时,前一个仍然存在,但当过渡为modal
时,前一个场景实际上已经死了。
每个视图控制器类的生命周期是多少?他们总是活着吗?
答案 0 :(得分:2)
如果您有两个UIViewController
名为A
和B
,并且您希望以模式方式显示B
,则A
将保留在内存中。没有人说A
要删除(在代码的其他部分删除它之前这是真的。)
因此,A
可以回复B
,直到后者(B
)仍然是presentedViewController
A
的{{1}}。< / p>
关于presentingViewController
,你可以避免它。例如,假设delegate
和A
属性为
B
在将@property (nonatomic, strong) NSMutableArray* myArray;
作为模态控制器之前,您可以说
B
现在他们将触摸相同的阵列。当B* b = // alloc init
b.myArray = [self myArray];
// present modally B
被解除时(如果您没有引用它将从内存中释放),在B
(myArray
内),您会在A
中找到修改。
显然这只是一个例子。这不是不使用B
的建议。
如需进一步参考,我只需查看Apple Doc。中的Presenting View Controllers from Other View Controllers