私はビューを追加し、そのクラスは "MyView.swift"です。 はその後、私はこれを行うことができますどのように、ラベルを追加し、そのプロパティを「ViewController.swift」私は「MyView.swift」でlbl.text修正したいスウィフトのサブビューでラベルのプロパティを使用するにはどうすればいいですか
@IBOutlet weak var lbl: UILabel!
を登録しますか?
私はビューを追加し、そのクラスは "MyView.swift"です。 はその後、私はこれを行うことができますどのように、ラベルを追加し、そのプロパティを「ViewController.swift」私は「MyView.swift」でlbl.text修正したいスウィフトのサブビューでラベルのプロパティを使用するにはどうすればいいですか
@IBOutlet weak var lbl: UILabel!
を登録しますか?
私はあなたの質問を理解しています:ビューコントローラがあります。 UIViewControllerのビューにMyViewという別のビューがあり、このビューにラベルがあり、そのテキストを変更したいとします。
1)あなたが設定できるlbl.tag = 2016
とその後:それはビューコントローラlbl.text = "new text"
を、ラベルのテキストを変更する方が良いでしょう。しかし、あなたがこれを行うことができない場合、私はいくつかのソリューションを参照してください。この場合
ビューからラベルを取得することができます:
if let myLabel = self.viewWithTag(2016) as? UILabel {
myLabel.text = "new text"
}
私はそれが最良の方法だと思います。
2)あなたはビューからNSNotificationを送るとのViewControllerにこの通知を受け取り、あなたのViewControllerをでのViewControllerのビューで弱い参照やメソッドを持つことができます
3)ビューコントローラのテキストを変更することができますテキストを変更する。この場合、viewDidLoad
にこの参照を設定することができますmyView.viewController = self
。そしてあなたのMyViewでこのメソッドを呼び出すことができますviewController.changeTextTo("new text")
"ViewController.swift"で宣言されたlblは "MyView.swift"で "self"使用してlblを取得できますか? –
2番目の方法はうまくいきます! –
3番目のメソッドはエラーを生成します: "Type" MyView "にはメンバー" viewController "がありません" –
あなたは何を修正したいのですか? –
はテキストコンテンツを変更するだけです –