我使用NavigationController提供不同的视图。在一种情况下,我想使用ChildView从用户获取一些数据并将该数据返回到ParentView。父视图在(IBAction)方法中使用pushViewController方法,因为它响应SegmentedController上的选择:即SegmentedController上的不同按钮推送不同的子视图。问题似乎是pushViewController方法分叉一个新进程,而ParentView继续执行IBAction而不等待ChildView返回:即在调用ChildView viewWillAppear之后。这是我的NSLog文件中的序列,显示了这种情况。问题是如何确保在孩子完成之前父母等到试图访问数据之前。
eventAction: Child selected
ChildView: initWithNibName called
ChildView: viewDidLoad called
ParentView: viewWillDisappear called
ChildView: viewWillAppear called
ParentView: eventAction: after pushing ChildView: data = 0
ChildView: numberOfRowsInSection called
ParentView: viewDidDisappear called
ChildView: viewDidAppear called
ChildView: pickerView: didSelectRow: data = 3
ChildView: viewWillDisappear called
ParentView: viewWillAppear called
ChildView: viewDidDisappear called
ParentView: viewDidAppear called