Iya*_*Iya 0 iphone xcode objective-c
我有一个RootViewController类和一个UserSettingsController类.我在RootViewController类中定义了UITableView方法(numberOfRowsInSection,cellForRowAtIndexPath).
我想从UserSettingsController类重新加载RootViewController类中定义的表视图.如何从UserSettingsController类中控制RootViewController类中的tableView对象?
我尝试了以下,但它尝试加载一个新的tableview对象.
RootViewController *rootViewController = [[RootViewController alloc]init];
[rootViewController.mytableView reloadData];
[rootViewController autorelease];
Run Code Online (Sandbox Code Playgroud)
您可以rootViewController.mytableView在viewWillAppearRootViewController本身的方法中重新加载.rootViewController.mytableView当您要进入rootViewController视图时,这将重新加载.如果您要加载的数据不多(因为加载需要更多时间,比如从Web获取数据),您可以使用此解决方案.
否则,rootViewController.mytableView要从您的设置视图加载,您可以像这样使用NSNotification:
在RootViewController.m中:
//This goes in viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTableViewData) name:@"ReloadRootViewControllerTable" object:nil];
Then make a method like this:
-(void) reloadTableViewData{
[mytableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
在"设置"视图中,要重新加载RootViewController tableView,请写下:
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadRootViewControllerTable" object:nil];
Run Code Online (Sandbox Code Playgroud)
这将自动调用RootViewController的reloadTableViewData方法,而无需进行子类化或任何操作.:)
利用带有自定义名称的通知来调用其他类中的静态方法.它们非常方便.
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |