1

GenericMoviePlayer次のアウトレットを持つ次のクラスがあると仮定します。

  • PlayButton
  • PauseButton
  • DoneButton

それらIBOutletには対応するものがありますIBActions

- (void) playTouched:(id)sender;
- (void) pauseTouched:(id)sender;
- (void) doneTouched:(id)sender;

これらのボタンに触れると、クラスの代表者に通知されます。

これで問題はありませんが、このより一般的なプレーヤーから継承する必要がある特別なタイプのプレーヤーが必要だと想像してみてください。これで、デリゲートプロトコルに新しいアウトレット、新しいアクション、および新しいメソッドが追加されます。では、どうすればこれを達成できますか?

サブクラス化とIBOutletsはうまく連携しますが、IBActionsを「継承」し、デリゲートプロトコルも上書きできるようにサブクラスを設計する方法がわかりません。

4

1 に答える 1

1

IBActionはヘッダーで定義されているため、これらのメソッドはxibGenericMoviePlayerで使用できます。SpecificMoviePlayerしたがって、xibでこれらのボタンを接続すると、それらGenericMoviePlayer IBActionのボタンを使用できるようになります。技術的にはSpecificMoviePlayer、play / pause / doneメソッドに機能を追加する(またはその機能を完全に変更する)必要がある場合は、それらのメソッドをオーバーライドします。

これは一種の大まかな概要ですが、達成したいことの具体例があれば、喜んでお手伝いさせていただきます。あなたの質問は、あなたが達成したいと思っていること(コードの再利用以外)についてもう少し明確にする必要があると思います。

于 2012-08-25T18:00:07.843 に答える