2011-11-23 45 views
0

不知道如何提出这个问题,所以它是有道理的,但让我试试。我的应用程序打开一个UIViewController,然后调用另一个。当它打开另一个时,它会成功地在文本字段中放置一个变量。当用户关闭第二个UIViewController并返回第一个UIViewController时,我将该变量传回并放置在文本字段中。这一点在这一点上都是成功的。该变量正在来回传递,没有任何问题。两个UIViewControllers之间传递变量的时间

所以这里是我正在做的事情:在返回到第一个UIViewController时,我运行一个查询语句,它使用文本字段中的变量作为从SQLite表中拉出记录的键。我使用NSLog来检查代码,我发现文本字段为空,但是当UIViewController出现时,变量位于文本字段中。

到目前为止我还在吗?我希望如此...

我在ViewDidLoad中运行查询。我认为ViewDidLoad在将第二个变量从第二个变量复制到文本字段之前正在运行。

我的主要问题是:我应该在ViewDidLoad中运行我的查询语句还是一些请在文本字段中获取变量。基本上,我想要做的就是根据从另一个UIViewController返回的文本字段中的值拉取记录。

谢谢!

回答

1

从技术上讲,如果您的原始视图从未涉及到,您的viewDidLoad将不会被调用。代表方法将被调用viewWillAppear:viewDidAppear:。 您可以使用自定义委托方法将值从第二个viewController传递回第一个。你应该记住的是,你应该使用NSString进行查询,并使用委托方法返回,并在viewWillAppear:期间将其放在textField中。

希望这会有所帮助!

+0

谢谢你们两位!我会稍后再尝试,并让你知道。这可能只是解决了我的问题。 – Jon

+0

再次感谢你们指引我朝着正确的方向发展。这很好用!我结束了使用viewDidAppear,因为textfield没有及时更新使用viewWillAppear。 – Jon

+0

很高兴为您提供帮助。如果你发现你的问题需要回答,请选择其中一个回复作为最佳答案来关闭问题。项目祝你好运! – Warkst

1

viewDidLoad仅在视图控制器从笔尖加载时调用。如果您从另一个切换回一个视图控制器,它将不会再次执行。尝试将代码放入viewWillAppear