2017-06-23 4 views
1

この基本的な質問は事前に申し訳ありませんが、私はちょうど答えを見つけるのが苦労しています。私はUIViewをサブクラス化するビュークラスを持っており、いくつかの基本的なメソッドdraw()は明らかにしています。私のMain.storyboardでは、UIView要素を追加し、作成したこのビュークラスにそのクラス属性を設定しました。クラスは次のようになります:SwiftのViewControllerからUIViewサブクラスインスタンスを取得する方法

class KeyboardView: UIView { 
    // local variables ... 

    override function draw(_ rect: CGRect) { 
     ... 
    } 

    class changeKord() { 
     ... 
    } 

    // other methods ... 
} 

私のメインのViewControllerクラスから、実際に実行時に作成されるインスタンスを参照したいと思います。このUIViewのコードでアウトレットを作成すると、インスタンス化する必要があり、クラスのインスタンスメソッドにアクセスできません。アウトレット変数から作成された実際のインスタンスを取得する方法はありますか?または私は何かを逃していますか?

View Controllerクラスの外にあるグローバル変数をKeyboardView型で作成し、KeyboardViewサブクラスのdrawメソッドでグローバル変数をselfに設定しました。この変数を使用すると、インスタンスを直接参照できます。どちらがうまくいくのですか?偶然IBOutletリファレンスからインスタンスを取得する方法はありますか?

答えて

0

Screenshot 1 - Test project Screenshot 2 - Property inspector

私はIBOutletはのCustomViewの種類を持っていることをスクリーンショットでは、一緒にご注意をこの簡単な例を入れています。

私が行ったことは、ストーリーボードにUIViewを追加し、プロパティインスペクターのクラスをCustomViewに変更し、その後にIBOutletを作成することでした。これは正しい型を使用していたので、ビューのカスタムプロパティと関数を参照できました。

プロパティインスペクタのクラスと一致する限り、以前に作成したコンセントのタイプを更新できます。

+0

ありがとうございます!それは私が逃したものです:( – teCyberDust

関連する問題