私のプロジェクトには、ユーザーがテキストを入力できるテキストフィールドを持つクラスがあります。しかし、私はそのテキストフィールドに入力されたテキストが別のクラスによって取り出されるようにしたいと思います。今まで私はこれを使っています:他のクラスの変数を参照する方法
var userEntry = userTextField.text
残念ながら、上記の方法は、同じクラス内の変数に対してのみ機能するようです。
私のプロジェクトには、ユーザーがテキストを入力できるテキストフィールドを持つクラスがあります。しかし、私はそのテキストフィールドに入力されたテキストが別のクラスによって取り出されるようにしたいと思います。今まで私はこれを使っています:他のクラスの変数を参照する方法
var userEntry = userTextField.text
残念ながら、上記の方法は、同じクラス内の変数に対してのみ機能するようです。
1つのクラスから別のクラスにメッセージを渡したり制御したりするためのオプションは複数あります。どれがどれだけのデータを渡す必要があるかによって異なります。
プロトコルを使用することは、AppleのAPIのほとんどの事実上の標準です。あなたがGoogleにそれを教えると、たくさんのチュートリアルを見つけることができます。
通知センターも人気のある選択肢です。ちょうどあなたの頭がおかしいとすれば、あなたの頭を掴むのがやや簡単です。
ここでは、開始するための超簡単な通知の例を示します。もう一度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)")
}
}
このコードは、通知を受け取ったときに受信側のクラスで再び何かを行います。
ちょうどそこに行ったやり方。 'text'は別のクラス(おそらく' UITextField')の変数であり、あなたはそのクラスのインスタンス( 'userTextField')の参照を通ってアクセスしています。 – nhgrif