【问题标题】:reloadData in MasterView from DetailView从 DetailView 重新加载 MasterView 中的数据
【发布时间】:2011-06-25 18:39:40
【问题描述】:

我之前在 iPhone 上遇到过与此类似的问题,但相同的解决方案似乎不适用于 iPad 环境。我的目标是调用我的方法forceReload,在我的 RootViewController 中定义,一旦模式被解除,它将从 DetailView 重新加载 RootView 中的 countdown_table 数据。 forceReload 直接从 RootViewController 调用时工作正常,但我似乎无法从 DetailView 指向 RootViewController。

我试过了

RootViewController *root_view = [self.splitViewController.viewControllers objectAtIndex:0];
[root_view forceReload];
[root_view.countdown_table reloadData];

但这只是指向导航控制器,而不是它里面的视图控制器。即使模式被解除,RootViewController 的 viewWillAppear 也不会触发。

我怎样才能指向这个文件? 谢谢!

【问题讨论】:

    标签: objective-c ios4 xcode4 reloaddata


    【解决方案1】:

    尝试使用通知,即将 RootViewController 注册为您的 DetailView 或任何视图可能发送的通知的观察者。

    在RootViewController的viewDidLoad中:

    [[NSNotificationCenter defaultCenter] addObserver:self 
                                             selector:@selector(forceReload) 
                                                 name:@"reloadRequest" 
                                               object:nil];
    

    viewDidUnload 或在 dealloc 中:

    [[NSNotificationCenter defaultCenter] removeObserver:self];
    

    在您的 DetailViewController 或模态视图中(您没有说它们是相同的),在您关闭视图之前或恰好在您需要 RootViewController 调用 forceReload 时放置:

    NSNotification *notif = [NSNotification notificationWithName:@"reloadRequest" object:self];
    [[NSNotificationCenter defaultCenter] postNotification:notif];
    

    【讨论】:

    • 我已经以相反的顺序尝试了这个(来自 Master 的 reloadData 详细信息),但没有运气。对此有何建议?
    • @LukeIrvin,您可以为此发布代码吗?另外,在 Detail 的视图中不会出现 reloadData(Will|Did) 吗?
    猜你喜欢
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 2011-07-04
    • 1970-01-01
    相关资源
    最近更新 更多