仅满足一次执行segue条件

时间:2013-09-05 08:46:14

标签: objective-c xcode uitableview segue

我在工作,现在没有代码可以提供,但稍后会发布,只是想在我回家之前看看能不能得到任何答案。

基本上,我有一个tableViewController(view1),上面有一个按钮,推送到另一个tableViewController(view2)。

view1上的按钮检查填充view2上的表所需的信息是否可用。如果它是伟大的,可以执行segue;如果不是,则数据存储在后台,然后完成segue。

这确实有效,但我遇到的问题是针对第二个实例,当数据先前未保存且按钮随后保存时,segue在所有数据保存在后台之前执行,因此仅限表格显示了一些记录。返回然后再次按下按钮解决了这个问题,因为数据有更多时间保存,因此view2中的表是最新的。

我要做的是要么阻止segue发生,直到保存所有数据或执行segue并保存每条记录,更新表,以便用户可以看到正在生成数据。

我希望这是有道理的!

我可以提供以后需要的代码。

任何建议都会很棒。

感谢

2 个答案:

答案 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];

您的保存将在您的保存操作结束后立即执行。

相关问题