2016-01-23 40 views
0

我想要做的就是從主UITextField對象獲取文本輸入。故事板兩個@IBOutlet對象顯示它們鏈接到正確的文本字段對象,但是,當我試圖使常量meenieOneText接受meenieOne UITextField的.text屬性的值時,出現錯誤消息「Instance member 'meenieOne'不能用於'ViewController'類型。在Swift中無法獲得UITextField的.text屬性 - 錯誤:「實例成員'textFieldName'不能用於'ViewController'類型

我真的很新,所以我可能會做一些簡單的完全錯誤的事情,但我在智慧的最後,因爲它對我來說很合適。

任何幫助,非常感謝。

提前致謝!

import UIKit 

class ViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet weak var meenieOne: UITextField! 
    @IBOutlet weak var meenieTwo: UITextField! 

    let meenieOneText: String = meenieOne.text 

回答

1

試試這個:

var meenieOneText: String = "" 

override func viewDidLoad() { 
    super.viewDidLoad() 
    meenieOneText = meenieOne.text! 
} 

你有問題,因爲在iOS的故事板元素,而訪問,可能沒有被初始化(例如,用戶不能看到它們),當你試圖訪問其屬性。確保元素初始化的最簡單方法是在viewDidLoad()之後訪問它們。還有其他階段,如'viewDidDisappear'等。請參閱ViewControllers上的Apple文檔: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/

+0

非常感謝!所有這些都有很多細微差別。所以,如果你不介意,我將如何初始化文本字段而不使用viewDidLoad方法? – Chrisman

+0

據我所知,您只有在加載視圖之後才能訪問文本字段。文本不在那裏。如果你有一些你需要的重要數據,那麼把這些數據保存在一個變量中是比較好的做法(比如let text:String =「我應該在文本字段中」),然後將它傳遞給文本字段視圖加載。也許你可以詳細闡述一下你的情況,這樣我們就可以獲得更多關於你想要達到的信息。 – tedcurrent

0

您不能直接在課堂上使用UITextField的屬性。在任何函數中寫入相同的代碼。它的工作正常。

相關問題