我在工作,现在没有代码可以提供,但稍后会发布,只是想在我回家之前看看能不能得到任何答案。
基本上,我有一个tableViewController(view1),上面有一个按钮,推送到另一个tableViewController(view2)。
view1上的按钮检查填充view2上的表所需的信息是否可用。如果它是伟大的,可以执行segue;如果不是,则数据存储在后台,然后完成segue。
这确实有效,但我遇到的问题是针对第二个实例,当数据先前未保存且按钮随后保存时,segue在所有数据保存在后台之前执行,因此仅限表格显示了一些记录。返回然后再次按下按钮解决了这个问题,因为数据有更多时间保存,因此view2中的表是最新的。
我要做的是要么阻止segue发生,直到保存所有数据或执行segue并保存每条记录,更新表,以便用户可以看到正在生成数据。
我希望这是有道理的!
我可以提供以后需要的代码。
任何建议都会很棒。
感谢
答案 0 :(得分:0)
在这种情况下,您应该从第一个表视图控制器创建一个segue到第二个。然后,一旦您成功保存数据,就可以像这样执行segue
[self performSegueWithIdentifier:@"segueId" sender:self];
您可以在此处找到更多详细信息:How to perform a segue that is not related to user input in iOS 5?
答案 1 :(得分:0)
NSBlockOperation* performSeque = [NSBlockOperation blockOperatioWithBlock:^(){
[self performSegueWithIdentifier:@"segueId" sender:self];
}];
[performSeque addDependency: [SaveOperation saveOperation]];
[[NSOperationQueue mainQueue] addOperation: performSeque];
您的保存将在您的保存操作结束后立即执行。