2013-02-27 64 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