Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableView-从单独的类重新加载数据_Ios_Uitableview_Ios5_Uipopovercontroller_Reloaddata - Fatal编程技术网

Ios UITableView-从单独的类重新加载数据

Ios UITableView-从单独的类重新加载数据,ios,uitableview,ios5,uipopovercontroller,reloaddata,Ios,Uitableview,Ios5,Uipopovercontroller,Reloaddata,我搜索了很多类似的问题,但仍然找不到答案。 如何在不初始化另一个类实例的情况下引用另一个类? 如何从单独的类中调用“reloadData”以反映主运行中心的数据。 主运行中心似乎正在保存,因为我已通过NSNotification对其进行了验证 Popover类别: -(void)actionSave:(id)sender { MainContent *entityContent = [NSEntityDescription insertNewObjectForEnti

我搜索了很多类似的问题,但仍然找不到答案。 如何在不初始化另一个类实例的情况下引用另一个类? 如何从单独的类中调用“reloadData”以反映主运行中心的数据。 主运行中心似乎正在保存,因为我已通过NSNotification对其进行了验证

Popover类别:

-(void)actionSave:(id)sender {
     MainContent *entityContent =
         [NSEntityDescription insertNewObjectForEntityForName:@"MainContent"
              inManagedObjectContext:self.mDoc.managedObjectContext];
     entityContent.date = [NSDate date];
     entityContent.title = self.titleName.text;

     //Main Question: How do I call the ViewController's function that is in a separate class?
     [ViewController reloadTableView]; //???

     //Separate Question: How do I dismiss this popover from inside of this function?
}
ViewController类:

-(void)setupTable {
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(gridV1, 140, column1_width, 768-170) style:UITableViewStylePlain];
    [self.tableView setBackgroundColor:[UIColor clearColor]];

    self.tableView.autoresizesSubviews = YES;

    self.tableView.delegate = self.tableViewController;
    self.tableView.dataSource = self.tableViewController;
    [self.view addSubview:self.tableView];
}
-(void)reloadTableView{
    [self.tableView reloadData];
}
TableViewController类:(self.tableView的委托和数据源)


就我个人而言,我使用NSNotifications,有几个事件是异步发生的,我会将通知发回

也就是说,我要做的是在背景线程上下载一张图片,并在完成后重新加载表。为此,我向tableviewclass发送通知,tableview类重新加载自己的tableview


~Dan

好吧,制作一个类似于此链接中示例的单例:

然后在UITableView所在的UIViewController的单例中创建ivar。然后在UITableView视图的VDL中,执行以下操作

    Singleton *singleton = [Singleton sharedSingleton];
    [singleton.mytableview reloadData];
[Singleton sharedSingleton].theViewController=self

然后在另一个视图中,执行以下操作

    Singleton *singleton = [Singleton sharedSingleton];
    [singleton.mytableview reloadData];

但是,对于(=self)行,您可能希望在更早的某个位置执行此操作,如ApplicationIDFinishLaunching,以便在尝试访问它时,ViewController变量不是nil。

使用单例,这样它就不会被初始化两次。我很难将UITableView转换为单例,initWithFrame函数已丢失。。。是否有解决方法?如何将TableViewController委托给此singleton并将其数据源化?将其子类化为子类…?请看下面的答案。