我在前面的iPhone中遇到了一个类似的问题,但是相同的解决方案似乎不适用于iPad环境。我的目标是调用在我的forceReload中定义的方法RootViewController,该方法将在取消模式后从RootView中重新加载RootView中的倒计时_表的数据。当直接从RootViewController调用时,RootViewController工作得很好,但我似乎不能指向来自DetailView的RootViewController。
我试过用
RootViewController *root_view = [self.splitViewController.viewControllers objectAtIndex:0];
[root_view forceReload];
[root_view.countdown_table reloadData];但这只指向导航控制器,而不是其内部的视图控制器。即使模式被取消,RootViewController的viewWillAppear也不会触发。
我怎么能指向这个文件?谢谢!
发布于 2011-06-25 21:58:55
尝试使用通知,即将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];https://stackoverflow.com/questions/6479780
复制相似问题