我的主界面有一个子界面做筛选,在筛选后想把筛选的条件字典返回主界面替换主界面的筛选字典的值,并且刷新主界面的数据
发现popViewController方法不能符合我的需求,并且需要我自己去写一个协议代理或者block来传值,我觉得很麻烦,能不能通过这2个用nav来管理的界面做内部值传递呢
我找到了一些帖子,总结了一下方法
//在子界面的筛选确定按钮做事件
//创建主界面
MainViewController * main = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2];
//初始化其属性(主界面.h的文件里面有一个可变字典的dictionary属性)
main.dictionary = nil;
//传递参数过去
main.dictionary = [NSMutableDictionary dictionaryWithDictionary:self.dictionary1];
//使用popToViewController返回并传值到上一页面
[self.navigationControllerpopToViewController:poweranimated:YES];
返回到上一页后,上一页面显示后要接收参数,并刷新。注意此时应该在viewDidAppear中进行判断并接收传递的值:
-(void)viewDidAppear:(BOOL)animated
{
//判断并接收返回的参数
//判断并接收返回的参数
if (_dictionary) {
[self.tableView reloadData];//选择界面 传值的情况下,_dictionary有值了,不去做懒加载,直接刷新界面数据
}else{
}
}