如何让父视图知道子视图已被删除 - iphone

use*_*584 2 iphone

我的应用程序有一个标签视图控制器作为主要访问点.但是,当它第一次运行时,我需要检查一些基本数据,如果缺少,我需要先显示一个视图来捕获这些信息.选项卡视图中的表使用此信息显示数据.

我这样做的方式是这样的:在我的app-delegate中,我显示了标签视图.然后检查信息x.如果不存在,请添加子视图2并将其显示在顶部.在view2中,我捕获信息,然后单击按钮将其从superview中删除.所需数据存储在模型中的全局变量中.现在,控件返回到显示它的选项卡视图.问题是我需要在选项卡视图中重新加载表数据,以便它反映正确的信息.但是,我无法在父标签视图中捕获此内容.因此,我可以刷新的唯一方法是手动点击按钮,这是不理想的.我希望它从子堆栈中删除子视图后立即自动刷新.

Wri*_*sCS 6

注册和呼叫通知是最佳选择.

对于要发送通知的视图:

- (void) viewDidLoad {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView:) name:@"updateView" object:nil];
}

- (void)updateView:(NSNotification *)notification {
    /*  this is where the updates will take place, 
        such as a [tableView reloadData];  
     */
}
Run Code Online (Sandbox Code Playgroud)

并致电该通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateView" object:nil];
Run Code Online (Sandbox Code Playgroud)