我有一個UITableView,用於使用MFMailComposeViewController發送電子郵件。它第一次正確顯示數據。如果我發送或取消電子郵件,那麼從那時起,我會看到一個空白屏幕(換句話說,我無法再發送電子郵件)。如何重新加載TabBar控制器中的視圖?
當我回到視圖再次發送電子郵件時,它是空白的,因此該視圖需要重新加載,因爲它原來是。
我需要做些什麼來解決這個問題? (我在Storyboard和ARC中使用XCode4)。
我有一個UITableView,用於使用MFMailComposeViewController發送電子郵件。它第一次正確顯示數據。如果我發送或取消電子郵件,那麼從那時起,我會看到一個空白屏幕(換句話說,我無法再發送電子郵件)。如何重新加載TabBar控制器中的視圖?
當我回到視圖再次發送電子郵件時,它是空白的,因此該視圖需要重新加載,因爲它原來是。
我需要做些什麼來解決這個問題? (我在Storyboard和ARC中使用XCode4)。
濫用API:當使用UITabBarController
時,viewDidLoad
僅在視圖加載開始時調用一次。因此,當您將代碼放入viewDidLoad
時,它只會執行一次。通過將該代碼移動到viewWillAppear
,它每次都會被加載。
只是FYI:'viewDidLoad:'總是隻在viewController的生命週期中調用一次。 (只有在這種情況下,視圖纔會由於內存問題而被卸載,當需要時它會再次加載)。 – calimarkus
嘗試在電子郵件發送或取消後直接在[self.view setNeedsDisplay]上重新加載解除電子郵件的視圖。
編輯:如何[emailView resignFirstResponder]; ?
不......沒有做任何事......但是,我注意到了這一點:[self dismissModalViewControllerAnimated:YES];我不認爲這是「模態」......會導致問題嗎? – SpokaneDude
我不知道,needsDisplay是一個猜測,我一直只是再次添加子視圖,像[firstview addSubview:viewIWantToReload] – DuskFall
您如何展示郵件編輯器? – JustSid
這是你在找什麼? MFMailComposeViewController * mailer = [[MFMailComposeViewController alloc] init]; mailer.mailComposeDelegate = self; //設置代理來通知我們發生了什麼' – SpokaneDude
不,我的意思是你如何顯示它?你是把它推到一個'UINavigationController'上還是作爲一個模型視圖控制器或...? – JustSid