从推送的视图控制器重新加载一个视图控制器的tableView

时间:2013-12-22 17:08:50

标签: ios uinavigationcontroller tableview

我有一个Parse后台块可以上传一些数据。这发生在一个视图控制器(让我们称之为addDataViewController),它被推送到另一个视图控制器(我的表视图,我们称之为tableViewController)。我需要在数据上传完成后重新加载tableView。我的故事板中嵌入了一个导航控制器,所以我已经尝试过了

//In addDataViewController
//when the data finishes uploading
self.navigationController.viewControllers objectAtIndex:0];

但由于某种原因,viewController堆栈为nil

然后我尝试引用tableViewController作为addDataViewController的属性来准备tableViewController的segue。我在{h} tableViewController

文件中添加了addDataViewController属性
//in prepare for segue of tableViewController
dataViewController.tableViewController = self;

然后引用了对象tableView并调用了reloadData,但似乎没有发生任何事情

[self.tableViewController.tableView reloadData];

我确信这会有效,但它没有。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

一种方法是使用通知。在您的addDataViewController中,您将在更新完成时触发通知:

[[NSNotificationCenter defaultCenter] postNotificationName:@"UpdateDone" object:nil];
在tableViewController中,您将订阅viewDidLoad中的通知:

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

然后:

-(void)doSomething {
    [self.tableView reloadData];
}

答案 1 :(得分:0)

如果要导入视图控制器,则必须使用[self.addChildViewController:tableViewController.view];

希望这会有所帮助。