我已经实现了一个基于导航的视图控制器,其中包含多个视图和模型。
现在我通过界面构建器将我的导航控制器添加到Tabbar。 (只是把整串拖进去)。它有效,我有一个新标签,里面有我的所有观点。
但是现在我想再次将完全相同的导航视图控制器添加到另一个选项卡。我也可以这样做,问题是,当我删除表格视图中的条目,该条目仍然可以在其他选项卡中看到。
所以当我切换标签时,我需要一种更新模型的方法。
更新
我在包含表格视图的addObserver
中添加了RootViewController
。我把它放在“view did load”中,我的删除方法中的postNotification。没有编译错误,但表也没有相互更新。
我上传了我的项目,或许你可以看一下?:
答案 0 :(得分:2)
这样做的一种方法是使用NSNotifications
。
加载包含tableView的视图控制器时,使用
注册tableView以获取通知 [[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:@"ModelUpdated" object:nil];
每次发布“ModelUpdated”通知时都会调用[self.tableView reloadData]
。因此,当您删除条目时,请使用
[[NSNotificationCenter defaultCenter] postNotificationName:@"ModelUpdated" nil];
最后,不要忘记删除通知(通常在viewDidUnload
中):
[[NSNotificationCenter defaultCenter] removeObserver:self name:"ModelUpdated" object:nil];
此问题中NSNotifications
的更多信息:What is NSNotification?