私は自分のアプリの 1 つを「共有 appdelegate」プロセスから遠ざけることに取り組んできました。やりたいことのためにプロトコルメソッドをセットアップしようとしましたが、運がありません。私の質問は、単一のビューコントローラーがデリゲート要求を複数のクラスに送信することさえできますか? 私が見つけたものから、あなたができるようには見えません。それがmvcを使用したデリゲートとプロトコルの要点だと思ったので、これは意味がありません。明確にするために、単一のビューコントローラーを他の複数のビューコントローラーのデリゲートとして機能させることができることを知っています。しかし、それは私が求めていることではありません。簡単な例として、りんごのフリップ ユーティリティ テンプレートがあるとします。「完了」ボタンは、デリゲート メソッドを mainvc に呼び出して破棄するだけです。
@interface NewClass : NSObject <TheOtherDelegate>
デリゲートメソッドがありました...
- (void)doSomething
{
NSLog(@"The Delegate did something...");
}
flipsideviewcontroller にデリゲート メソッドを呼び出したいボタンを配置できますが、それを却下する mainviewcontroller のデリゲート メソッドへの「完了」ボタン呼び出しを保持できますか?
そうは言っても、それが機能するかどうかを確認するためだけに、簡単なプロジェクトをまとめました。最初にデリゲートになりたいクラスをインスタンス化する必要があるという「答え」に出くわしました...
NewClass *myDelegate = [NewClass alloc] init]
[fillInMethodHere setDelegate:myDelegate];
言うまでもなく機能しないため、正解チェックが行われた理由はわかりません。私が欠けているものはありますか?どこかに「デリゲート」接続があるかどうかを確認するためにibを精査しましたが、何も見つかりませんでした。
ちなみに、私は自分の作業中のプロジェクトで作業していたので、を削除し#import
て追加することについての提案を読みました@class
。繰り返しますが、それはあらゆる種類のものを壊しました。奇妙なことは、それを行う前に、私がこれまでに持っていたものがうまく機能し、うまく構築されていたことです。@class
新しいものを削除してコメントを外したとき#import
。xcode は突然、「... のプロトコル減速が見つかりません」というエラーを表示しましたが、数秒早く機能しました。プロトコルコードを削除して、再び機能させるために再度追加する必要があります。非常にスタージ。
任意の助けをいただければ幸いです。ドキュメント、グーグル、スタックなどで読んだすべてのものは、実際のプロジェクトではなく、うまくいくはずです。