2016-04-06 11 views
1

私はビューを追加し、そのクラスは "MyView.swift"です。 はその後、私はこれを行うことができますどのように、ラベルを追加し、そのプロパティを「ViewController.swift」私は「MyV​​iew.swift」でlbl.text修正したいスウィフトのサブビューでラベルのプロパティを使用するにはどうすればいいですか

@IBOutlet weak var lbl: UILabel! 

を登録しますか?

+0

あなたは何を修正したいのですか? –

+0

はテキストコンテンツを変更するだけです –

答えて

0

私はあなたの質問を理解しています:ビューコントローラがあります。 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")

+0

"ViewController.swift"で宣言されたlblは "MyView.swift"で "self"使用してlblを取得できますか? –

+0

2番目の方法はうまくいきます! –

+0

3番目のメソッドはエラーを生成します: "Type" MyView "にはメンバー" v​​iewController "がありません" –

関連する問題