2012-05-05 119 views
1

我有一個UITableView,用於使用MFMailComposeViewController發送電子郵件。它第一次正確顯示數據。如果我發送或取消電子郵件,那麼從那時起,我會看到一個空白屏幕(換句話說,我無法再發送電子郵件)。如何重新加載TabBar控制器中的視圖?

當我回到視圖再次發送電子郵件時,它是空白的,因此該視圖需要重新加載,因爲它原來是。

我需要做些什麼來解決這個問題? (我在Storyboard和ARC中使用XCode4)。

+0

您如何展示郵件編輯器? – JustSid

+0

這是你在找什麼? MFMailComposeViewController * mailer = [[MFMailComposeViewController alloc] init]; mailer.mailComposeDelegate = self; //設置代理來通知我們發生了什麼' – SpokaneDude

+0

不,我的意思是你如何顯示它?你是把它推到一個'UINavigationController'上還是作爲一個模型視圖控制器或...? – JustSid

回答

0

濫用API:當使用UITabBarController時,viewDidLoad僅在視圖加載開始時調用一次。因此,當您將代碼放入viewDidLoad時,它只會執行一次。通過將該代碼移動到viewWillAppear,它每次都會被加載。

+1

只是FYI:'viewDidLoad:'總是隻在viewController的生命週期中調用一次。 (只有在這種情況下,視圖纔會由於內存問題而被卸載,當需要時它會再次加載)。 – calimarkus

0

嘗試在電子郵件發送或取消後直接在[self.view setNeedsDisplay]上重新加載解除電子郵件的視圖。

編輯:如何[emailView resignFirstResponder]; ?

+0

不......沒有做任何事......但是,我注意到了這一點:[self dismissModalViewControllerAnimated:YES];我不認爲這是「模態」......會導致問題嗎? – SpokaneDude

+0

我不知道,needsDisplay是一個猜測,我一直只是再次添加子視圖,像[firstview addSubview:viewIWantToReload] – DuskFall

相關問題