从AppDelegate调用RootViewController上的[tableView realoadData]?

时间:2011-08-07 22:50:35

标签: iphone objective-c ios uitableview

在我的应用程序中,我正在发出HTTP请求并等待并使用数据更新我的RootViewController。问题是,我需要在数据收集完成后调用[tableView reloadData],因为现在看来tableview将部分填充或根本不填充。我遇到了这个帖子:

Passing an NSDictionary to a ViewController from AppDelegate

其中包括这个解决方案,用于在app delegate中设置视图控制器中的数据,但我想知道如何根据我的情况调整这个?我想,我只需要在appDelegate中引用rootViewController,这样我就可以在需要时调用reloadData

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil tableDataSource:(NSArray*)tableData {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
    // Custom initialization
    tableDataArray = [tableData retain];

}
return self;
}

感谢您的任何想法

2 个答案:

答案 0 :(得分:1)

tableView声明为该类中的myTableView等属性。现在引用该类并调用[classObject.myTableView reloadData];

它应该工作。

答案 1 :(得分:1)

您可以为appDelegate提供一个属性,该属性接收一个指向RootViewController的指针,该属性在初始化时由RootViewController设置。

- (id)initWithNibName:(NSString *)nibNameOrNil 
               bundle:(NSBundle *)nibBundleOrNil 
      tableDataSource:(NSArray*)tableData 
{
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) 
    {
        // Custom initialization
        tableDataArray = [tableData retain];
        (MyAppDelegate *)([[UIApplication sharedApplication] delegate]).rootController = self; 
    }
    return self;
}