2016-09-21 3 views
2

私は2つのクラス、MainViewControllerとButtonHandlerを持っています。私は、mainViewControllerでほとんどのUIとコントロールを処理できるようにしたいと考えています。しかし、アプリケーションにはたくさんのボタンがあるので、ButtonHandlerクラスを作成して、MainViewControllerからUIのボタン・アスペクトを抽象化できるようにしたいと考えていました。ボタンハンドラには、多くのボタンが含まれ、ボタンがクリックされたときに行うアクションを処理します。Swift、ストーリーボードで2つのクラスを1つのシーンに接続するにはどうすればよいですか?

問題は、MainViewControllerクラスに1つのボタンまたは2を追加できるようにしたいという点です。したがって、ビュー/シーンでMainViewControllerクラスを設定すると、MainViewControllerにボタンを追加できますが、ButtonHandlerにボタンを追加することはできず、その逆もできません。

私のButtonHandlerクラスが私のMainViewControllerクラスを継承する場合、私はそれらの両方にボタンを追加することができます。しかし、別の方法がありますか?私は相続財産が本当に2つのクラスの間に適切な関係を示していないと思っていました。

ストーリーボードで2つのクラスを1つのシーン/ビューに接続/設定する方法はありますか?

+1

一般的な「オブジェクト」をオブジェクトパレットからシーンに追加し、そのクラスを 'ButtonHandler'に設定することができます。カスタマイズがボタンに固有のものであれば、 'UIButton'をサブクラス化し、シーンのボタンサブクラスを使用することもできます。 – Paulw11

答えて

3

のは、あなたのButtonHandlerは、このようなものに見えるとしましょう:あなたのストーリーボードで

class ButtonHandler: NSObject { 
    @IBOutlet weak var button: UIButton! 

    override init() { 
     super.init() 
    } 

    @IBAction func buttonTapped(sender: AnyObject) { 
     print("button tapped") 
    } 
} 

、 "オブジェクト" コンポーネントパネルパネル(画面の右下)の検索:

Search for object

ドラッグのことをコンポーネントをシーンパネル(ストーリーボードの左側)に追加します。シーンパネルからオブジェクトを選択し、上、右のパネルでオブジェクトのクラスを変更:

Change the object class

あなたは今ButtonHandlerのものにボタンコンセントを接続することができます。

UIViewControllerButtonHandlerへのコンセントを作成し、コードからハンドラにアクセスすることもできます。

関連する問題