【问题标题】:Tabbar with same navigation controllers具有相同导航控制器的标签栏
【发布时间】:2010-12-19 22:25:46
【问题描述】:

我已经实现了一个基于导航的视图控制器,其中包含多个视图和一个模型。

现在我通过界面生成器将我的导航控制器添加到标签栏。 (只是把整个一堆拖进去)。成功了,我有一个新标签,里面有我所有的视图。

但现在我想将完全相同的导航视图控制器再次添加到另一个选项卡。我也可以这样做,问题是,当我例如在我的表格视图中删除一个条目,该条目在另一个选项卡中仍然可见。

那么当我切换选项卡时,我需要一种方法来更新我的模型。

更新:

我在包含表格视图的RootViewController 中添加了addObserver。我将它放在“视图确实加载”中,即我的删除方法中的 postNotification 中。没有编译错误,而且表也不会互相更新。

我上传了我的项目,你可以看看吗?:

http://www.perry-paul.de/unternehmenf.zip

【问题讨论】:

    标签: iphone sdk controller navigation tabbar


    【解决方案1】:

    一种方法是使用NSNotifications

    当您加载包含 tableView 的视图控制器时,使用以下命令注册您的 tableView 以获取通知

    [[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:@"ModelUpdated" object:nil];

    这样[self.tableView reloadData] 将在您每次发布“ModelUpdated”通知时被调用。因此,当您删除条目时,请使用

    发送通知

    [[NSNotificationCenter defaultCenter] postNotificationName:@"ModelUpdated" nil];

    最后别忘了删除通知(一般在viewDidUnload):

    [[NSNotificationCenter defaultCenter] removeObserver:self name:"ModelUpdated" object:nil];

    更多关于NSNotifications的信息在这个问题中:What is NSNotification?

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      相关资源
      最近更新 更多