2016-08-15 53 views
0

我有一個viewController包含一個UITableViewController。這個UITableViewController由一個數組填充。當用戶按下已填充的單元格時,它們將繼續設置爲'Manuel Segue:Show'的segue,這會創建一個後退按鈕UINavigation bar項目。在這個viewController中,用戶可以將Items添加到填充父級UITableViewController的數組中。問題是,當我繼續使用UINavigationbarItem,它不會在UITableViewController上調用viewDidload,通過不更新UIViewTableCells。我必須關閉應用程序,以使其調用viewDidload ...我如何使它從Manuel segue顯示返回時調用ViewDidload?所有幫助讚賞。Manuel segue'Show'在返回父視圖控制器時不調用ViedDidload?

+2

'viewWillAppear'將被調用。從那裏觸發表重新加載。 – vacawama

+0

當應用程序啓動時,這與ViewDidLoad衝突嗎? –

+1

'viewWillAppear'將在第一次被調用'viewDidLoad'之後調用。如果你想避免第一次調用'reload',那麼你可以在'viewDidLoad'中設置一個屬性,比如'viewJustLoaded = true',並在這種情況下跳過'viewWillAppear'中的'reload'。不要忘記將屬性設置爲false。 – vacawama

回答

1

當上面顯示另一個視圖控制器時,推送視圖控制器不會被卸載。由於viewDidLoad:只在視圖生命週期中調用一次,所以在segue解開時不會調用它。

更新在viewWillAppear中的實現代碼如下:viewDidAppear:將導致此每當出現這一觀點被調用。

viewWillAppear可能會更好,如果你不想在不需要異步加載數據時向用戶顯示錶重裝。


瞭解更多關於iOS的視圖控制器生命週期中的位置: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html#//apple_ref/doc/uid/TP40015214-CH6-SW3

相關問題