ios开发之Modal切换场景遇到的bug2

tech2025-07-20  6

项目场景:

场景描述:

View 1中的email label 的内容需要显示在View 2的TextFiled中,点击Edit按钮切换页面;View 2的TextField修改email内容后,点击Finished按钮返回View 1中,改变email Label的内容。

问题描述:

如下图所以: 当在viewDidLoad中设置View 2 的TextField内容时候,返现presentingViewController(即View 1)为nil,无法获取View 1中的email Label的内容; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // 前一个页面 self.emailField.text = ((ViewController *)self.presentingViewController).emailLabel.text; } 方法查看Quick Help Inspector 中的Discussion

原因分析:

如图所示: 原文地址StackOverflow 结合以上文档描述,viewDidLoad确保了nib文件加载到了内存中,而还没有确保加载到navigation tree上,建议上面逻辑放在viewWillAppear上.

解决方案:

正确渲染成功 - (void)viewWillAppear:(BOOL)animated{ // 前一个页面 self.emailField.text = ((ViewController *)self.presentingViewController).emailLabel.text; }
最新回复(0)