問題を説明する方法が完全にはわかりませんが、試してみます。
だから私はデリゲートとプロトコルの使い方を学ぼうとしていて、問題にぶつかりました。私はプロトコルを持っています:ButtonInPopOverWasPressed、1つのメソッドで:
- (void)buttonWasPressed:(NSString *)buttonValue;
また、メインビューコントローラーと、次のプロパティを持つカスタムポップオーバークラスもあります。
@property (retain, nonatomic) id <ButtonInPopoverWasPressed> delegate;
メインのViewControllerには、ボタンとテキストラベルがあります。ボタンが押されると、通常のポップオーバーになります。次に、segue.destinationViewControllerのデリゲートを次のようにメインビューコントローラーに割り当てます。
[segue.destinationViewController setDelegate:self];
次に、ポップオーバーのボタンを選択すると、メインビューがリッスンするプロトコルメソッドを呼び出すことにより、メインビューのテキストラベルに表示されます。
[self.delegate buttonWasPressed:sender.currentTitle]; // sends the title of the button pressed to the delegate
これはすべて正常に機能します。私の問題は、情報をメインビューに戻すのではなく、ボタンが押されたときにポップオーバーを別のビューに移行させたいときに始まりました。しかし、私がポップオーバーとしてナビゲーションコントローラーを作成し、古いポップオーバーとの関係を設定すると、すべてが壊れました。
セグエのデリゲート(上に表示)を割り当てると、反対側にnullとして表示されるため、他のサブビューに渡して情報をメインビューに戻すことができなくなります。ナビゲーションコントローラーはデリゲートを吸い上げますか?デリゲートをNCから実際のビューに移動するにはどうすればよいですか?
私はこれがプロトコルとデリゲートの基本であることを知っていますが、私は周りを見回していて、私のために働いた答えを見つけることができないようです。