我有一種觀點,即以模態方式顯示來從用戶獲取登錄信息。我具有以下設置:在關閉視圖之前從UITextField中讀取最新值的問題
- 視圖控制器是一個
UITableViewController
- 該表有三個單元:用戶名和密碼字段(兩個類型
UITextField
內UITableViewCell
的)和一個簡單的單元作爲登錄按鈕。 - 值從
UITextField
中讀取textFieldDidEndEditing:
消息 - 文本字段由不同的標記值標識。
問題
我的問題是,當焦點在一個UITextField
和用戶觸摸登錄按鈕,的各自的UITextField
textFieldDidEndEditing:
消息的didSelectRowAtIndexPath:
後發送。現在問題在於,我正在向didSelectRowAtIndexPath:
中的LoginViewControllerDelegate
發送一條新用戶憑據的消息,此時文本字段的值尚未讀取。
的幾點思考
我有一些想法如何解決這一問題,但我與他們每個人的併發症。
首先,我可以關閉登錄視圖,並在關閉期間通知委託,但我想給委託(擁有此登錄視圖的人)完全控制,我認爲它應該是委託人的工作來關閉成功登錄時的登錄視圖(登錄視圖只讀取憑證,委託人驗證這些憑據)。
其次,我還可以在調用委託之前讀取用戶名或密碼,但是我必須查看文本字段。如果視圖不可見,我認爲假定單元格確實存在是錯誤的。這只是一個很大的,但我不想說得很對。可以保留UITextField
嗎?但是,這樣,我不能使用自己提供文本字段的自定義單元格。
基本上我想執行以下操作:檢測針對
(有效)的用戶憑證- 需要,登錄視圖彈起
- 用戶輸入用戶名和密碼,並調用完成的。
- 委託驗證這些憑據。如果它們不起作用,則顯示一條消息並再次嘗試步驟2。
- 憑證沒關係,請關閉登錄視圖並繼續。
好吧,我試過了。看起來按鈕的目標動作仍然在執行'textFieldDidEndEditing:'之前執行,我在其中讀取文本字段的值。 – mkko 2011-03-20 14:31:42