0

ビューでいくつかの操作を処理するカスタム オブジェクトがあります。基本的には、nib ファイルで UIView を初期化します。しかし、ViewController に IBActions の処理を​​任せたいと思っています。そこで、viewcontroller をファイルの所有者に設定し、IBActions を接続しました。

私のカスタム オブジェクトでは、次のように nib ファイルをロードします。

self.nibView = [[[NSBundle mainBundle] loadNibNamed:@"nibName" owner:delegate options:optionsDict] lastObject];

私のUIViewController(奇妙なもの)であるデリゲートを所有者に設定しました。そのため、viewcontroller が IBActions を処理することを期待していましたが、そうではありませんでした。私のカスタムオブジェクトはアクションに応答しようとしましたが、セレクターに応答しないため、もちろんアプリケーションがクラッシュしました。どうすればそれを達成できますか?

編集:

ビューコントローラー ビューコントローラー

カスタム オブジェクト カスタム オブジェクト

ニブファイル ニブファイル

4

1 に答える 1

0

デリゲートはプロトコルであり、所有者はオブジェクトでなければなりません。

ビュー コントローラーがデリゲート プロトコルに準拠している場合owner:self は、ビューのデリゲート プロパティがビュー コントローラーに設定されていることを確認する必要があります。これは、IBOutlet を使用して IB で行うか、次のようなコードで行うことができます。self.nibView.delegate = self

于 2013-12-10T10:34:36.807 に答える