章を表すセクションと詩を表す行を含む本を記述する TableView があります。
このTableViewの上部には、ナビゲーションバーに「ナビゲーション」を許可するボタンがあります。
このナビゲーション ボタンの目的は、ユーザーが手動でスクロールする (非常に長くなる可能性がある) ことなく、特定の章/節に簡単にジャンプできるようにすることです。
ボタンが押されると、tableview コントローラーが呼び出され、本の利用可能なすべての章が表示されます。章が選択されると、別のテーブル ビューが呼び出され、現在の章で利用可能な節のリストが表示されます。最後に、行が選択されると、本を表示する tablew ビューが指定されたインデックス/行までスクロールする必要があります。
だからアイデア:本を表すテーブルビューから、私はチャプタービューをモーダルと呼び、詩をチャプタービューのプッシュと呼びます。
私の問題は、デリゲートを管理して 2 番目のモーダル ビューを閉じるという点が理解できないことです。
1つのモーダルビューで私はそのようなことをします.
表示された VC (View Controller) に、プロトコルとデリゲートを追加しました
@protocol ChapitresTableViewControllerDelegate <NSObject>
- (void)didDismissPresentedViewController;
@end
@interface ChapitresTableViewController : UITableViewController
@property (nonatomic, weak) id <ChapitresTableViewControllerDelegate> delegate;
@end
私はdidSelectRowにいます
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.delegate didDismissPresentedViewController];
}
表示されているVCに次の行を追加します
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
ChapitresTableViewController *chapitresTableViewController = segue.destinationViewController;
chapitresTableViewController.delegate = self;
}
そしてもちろん
-(void)didDismissPresentedViewController
{
[self dismissViewControllerAnimated:YES completion:nil];
}
最初のモーダル VC の後に閉じたい場合、これは問題なく機能しますが、2 番目のモーダル VC をクリックした後に 2 番目の VC を閉じたいと思っています。2 番目のモーダル VC にプロトコルなどを記述できますが、デリゲートを 2 番目の VC に送信するにはどうすればよいですか。
私の質問が十分に明確であることを願っています。説明するのは簡単ではありません。
誰でも私を理解し、私を助けることができますか?
注: 今のところ、パラメーターをデリゲートに戻していないことはわかっています。これは、後でスクロールを行うために行います。今のところ、2 番目のビューを閉じたいだけなので、必要なものを追加してパラメーターをデリゲートに戻します。