不确定如何提出这个问题所以它会有意义,但让我尝试一下。我的应用程序打开一个UIViewController,然后调用另一个。当它打开另一个时,它会成功地在文本字段中放置一个变量。当用户关闭第二个UIViewController并返回第一个UIViewController时,我传回变量并将其放在文本字段中。这一点都很成功。变量正在来回传递,没有任何问题。
所以这就是我要做的事情:在返回第一个UIViewController时,我运行一个查询语句,该语句使用textfield中的变量作为从SQLite表中提取记录的键。我使用NSLog来检查代码,我看到textfield是空的,但是当UIViewController出现时,变量在textfield中。
到目前为止和我在一起吗?我希望如此......
我在ViewDidLoad中运行查询。我认为ViewDidLoad在将变量从第二个复制到文本字段之前正在运行。
我的主要问题是:我应该在ViewDidLoad中运行我的查询语句,还是请在文本字段中获取变量。基本上,我想做的就是从另一个UIViewController返回时根据textfield中的值拉取记录。
谢谢!
答案 0 :(得分:1)
viewDidLoad
仅在从nib加载视图控制器时调用。如果从另一个视图控制器切换回一个视图控制器,则不会再次执行。尝试将代码放在viewWillAppear
中。
答案 1 :(得分:1)
从技术上讲,如果原始视图从未被取消分配,则不会调用viewDidLoad
。将调用的委托方法是viewWillAppear:
和viewDidAppear:
。
您可以使用自定义委托方法将第二个viewController中的值传递回第一个。您应该记住的是,您应该使用委托方法传回的NSString
进行查询,并在viewWillAppear:
期间将其放在textField中。
希望这有帮助!