我有一个 TableView,它描述了一本书,其中的部分代表了代表经文的章节和行。
在这个 TableView 的顶部,我在导航栏中有一个按钮,允许“导航”。
此导航按钮的目的是让用户无需手动滚动(可能很长)即可轻松跳转到给定的章节/诗句。
按下按钮时,称为显示本书的所有可用章节的表观视图控制器,并且选择了一章时,将另一个表视图称为显示当前章节中可用经文的列表。Finally when the line is chosen the tablew view displaying the book should scroll to the given index/row.
所以这个想法:从代表这本书的表格视图中,我将章节视图称为模态,将经文称为章节视图的推动。
我的问题是我没有得到管理委托并从第二个模式视图中解散的意义。
使用 1 个模态视图,我会做这样的事情。
在显示的 VC(视图控制器)中,我添加了协议和委托
@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 之后关闭,这会很好用,但我想要的是在我点击第二个后关闭第二个。好的,我可以在第二个模态 VC 中编写协议和内容,但是我如何设法将委托发送到第二个 VC。
希望我的问题足够清楚,解释起来并不容易。
有人了解我并可以帮助我吗?
注意:我知道现在我没有将任何参数传递回委托,稍后我将执行此操作来进行滚动。现在我只想能够关闭第二个视图,然后我将添加所需的东西以将参数传递回委托