2

写真コレクションを表示する再利用可能なコンポーネントを作成しようとしています。基本的な流れは次のとおりです。

  • 最初のビュー: View. これには、プログラムで設計され、カスタム クラスを割り当てることによってストーリーボードからロードされる、いわゆるライブラリが含まれています。
  • 「写真を撮る」ボタンからオープンエンドのモーダルビューで写真を撮ります
  • 写真がディスクに保存されたら、写真のパスからPhotoLib新しいものを作成するように依頼しますPhotoCell

タッチ対応にしたいPhotoCellので、タップするとモーダルな方法で2番目のビューが開きますが、私が読んだことから、私PhotoCellまたは内部のUIImageView(コントローラーではない)からこれを行うことはできません。

では、どうすればよいですか?View以下のスクリーンショットに示されていなくても、NavigationController に埋め込まれています。

ありがとうございました !

XCodeから見る

4

1 に答える 1

2

photolibでPhotocellを作成する場合、photolibはphotocellからデリゲートメソッドを実装する必要があります。ただし、photolib自体はrootviewcontrollerではないため、デリゲートメソッド自体を宣言し、含まれているビューがそれを実装する必要があります。

基本的に、Photocellをそれ自体からPhotolib(デリゲートメソッドを実装する)に渡します

-(void) openPhotoCell:(Photocell*)cell
{
  [self.delegate openPhotocell:(Photocell*)cell];
}

、次にそれをViewに渡し、Viewがそれを開きます。

耳から歯を抜くように見えるかもしれませんが、実際にはかなり機能しており、わかりやすいコードを記述すれば問題ありません。私は現在、数十のビューとコントローラーを備えたいくつかの大きなプロジェクトに取り組んでいますが、それはかなりうまく機能し、誰も問題はありません。

より多くのレイヤーがある場合は、NSNotificationを調べる必要があります。

お役に立てば幸いです。詳しく説明させていただきます。

UPD:

リンク:

ココアファンダメンタルズガイドのデリゲートについて

ウィキペディアの委任パターン

于 2012-06-20T18:15:53.707 に答える