2011-11-23 41 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