iOS使用NavigationViewController跳转以及返回传值

我的主界面有一个子界面做筛选,在筛选后想把筛选的条件字典返回主界面替换主界面的筛选字典的值,并且刷新主界面的数据

发现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{

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容