這裏需要一些最佳實踐建議...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)分離。