2013-02-27 65 views
2

我有兩個View Controller。首先,我做了一些事情,然後通過單擊按鈕(與故事板中其他ViewController連接的按鈕)來推動第二個View Controller。在那裏我可以做一些設置等等。我用「完成」按鈕回到第一個視圖控制器。但是,然後再次調用ViewDidLoad方法,並且所有「東西」(textfields中的文本,...)都消失了。再次調用ViewDidLoad方法

我希望你們明白我的問題。

爲什麼?我該如何禁用它?

+0

請發佈代碼,顯示您如何移動到第二個視圖控制器。 – iDev 2013-02-27 21:11:35

+0

我在故事板中執行此操作...通過單擊按鈕 - >將其拖動到第二個ViewController->樣式:Modal – user1554681 2013-02-27 21:22:54

回答

1

你最近怎麼回到第一個視圖控制器?我認爲你的問題是當用戶點擊「完成」時你重新實例化第一個視圖控制器。

相反,您應該使用「popViewControllerAnimated」或「dismissViewControllerAnimated」返回到第一個視圖控制器。

e.g:(這些2的一個應該工作):

[self.navigationController popViewControllerAnimated:YES]; 
[self dismissViewControllerAnimated:YES completion:nil]; 
+0

我沒有導航控制器。在故事板中,通過右鍵單擊「完成」按鈕將其拖動到第一個ViewController。 – user1554681 2013-02-27 21:26:08

+0

+1:我同意,這聽起來像他沒有適當地彈出/解散視圖控制器,而是創建一個新的實例,它確實再次調用viewDidLoad:'「(畢竟這是一個新的實例) – 2013-02-27 21:27:17

+0

哦......很好。我只是用「[self dismissViewControllerAnimated:YES completion:nil]」來測試它;「它的工作。但現在的問題是,如果我在第二個ViewController的文本字段中添加文本,則返回到第一個,然後再在第二個文本中,文本消失... – user1554681 2013-02-27 21:33:25

0

也許firstViewController是因爲接收存儲器警告的卸載。所以當它再次打開時,它調用ViewDidLoad