这里需要一些最佳实践建议...UIViewControllers彼此绊倒
基于导航的应用程序。根视图是一个UITableView,用户可以深入到一个细节UIViewController(称之为VC1)。用户想要启动一些任务,但它可能可能需要额外的信息才能继续。如果是这样的话,VC1分配&呈现模态VC2使用“翻转”转换,在属性中保持对VC2的强引用。
所有相当标准。这是我遇到麻烦的地方。一旦用户在VC2中填写需要的信息,应用程序可以继续到MFMailComposeViewController
或翻转回VC1。如果他们继续MailCompose,那么当它解散它应该返回到VC1。
VC2有弱引用VC1和问题棱时VC2试图解雇本身和现在MFMailComposeViewController
:
[self dismissModalViewControllerAnimated:YES];
[VC1 performSelector:@selector(showMailModalView) withObject:nil afterDelay:0.2];
我得到一个EXC_BAD_ACCESS上VC1,因为,很显然,我的弱引用VC1已是即使VC1对VC2有很强的参考,也可以解除分配!
所以我的问题是......这应该怎么处理?代表模式会更好吗?这将如何触发?
注意:VC1非常大,并且通常不需要VC2,因此我试图使VC2尽可能与VC1(包括其自己的NIB)分离。