2016-04-08 55 views
-1

我在我的項目中有一個類,其中有一個文本字段,用戶可以在其中輸入文本。但是,我希望在該文本字段中輸入的文本可以被另一個類檢索。到目前爲止,我已經使用這個了:如何引用其他類中的變量

var userEntry = userTextField.text 

遺憾的是,以上只是方法似乎只對在同一類內的變量的工作。

+0

*剛好*就是你剛纔那樣做的。 'text'是另一個類的變量(可能是'UITextField'),你可以通過引用你必須訪問的類的實例('userTextField')來訪問它。 – nhgrif

回答

0

您有多個選項可以將消息和控制從一個類傳遞到另一個類,您可以根據需要傳遞的數據類型和數據類型來選擇一個類。

使用協議是蘋果API大部分事實上的標準,如果你使用它,你可以找到很多有關這個主題的教程。

通知中心也是一種流行的替代方案,說實話,如果你剛剛開始,它會讓你的頭腦更容易一些。

這裏是一個超級簡單的通知讓你開始的例子,再次Google主題獲得一個教程。

var dataDict = Dictionary<String, String>() 
       dataDict["rid"] = self.superString4 
        NSNotificationCenter.defaultCenter().postNotificationName("NotificationIdentifier", object: self, userInfo:dataDict) 

此代碼調用通知中心在過程中發佈dataDict中的信息。你把這個數據放在你的課堂上,班級發送數據。

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ViewController.methodOfReceivedNotification(_:)), name:"NotificationIdentifier", object: nil) 

而這個代碼在接收類中註冊一個通知。

func methodOfReceivedNotification(notification: NSNotification){ 
    print("methodOfReceivedNotification") 
    var recordID: CKRecordID! 
    if let info = notification.userInfo as? Dictionary<String,String> { 
     if let rid = info["rid"] { 
      print("rid \(rid)") 
     } 
} 

而這個代碼,再次在接收類中做了一些事情,當它得到通知。

相關問題