暂停 segue 直到 IAP 交易完成
Posted
技术标签:
【中文标题】暂停 segue 直到 IAP 交易完成【英文标题】:Pause segue until IAP transaction complete 【发布时间】:2014-07-04 23:52:06 【问题描述】:When the purchaseButton
is chosen it starts the process of purchasing an IAP, which will segue the user to the next ViewController
.
我需要弄清楚如何让 segue 推迟将用户发送到下一个 ViewController
,直到 IAP 交易完成。
有什么建议吗?将根据需要发布任何额外的代码。谢谢!
转场
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
if ([segue.identifier isEqualToString:@"leaguesEdit"])
UIButton *button = (UIButton *)sender;
MREditLeaguesViewController *levc = (MREditLeaguesViewController *)segue.destinationViewController;
levc.buttonNumber = (int)button.tag;
NSLog(@"LEVC #: %d", (int)button.tag);
else if ([segue.identifier isEqualToString:@"nothing"])
// Nothing
segue
与 ViewController
相连。而它所在的IBAction
是:
- (IBAction)purchase:(id)sender
[self purchaseProduct:[validProductsInStore objectAtIndex:0]];
NSLog(@"IBAction Purchase");
[self performSegueWithIdentifier:@"leaguesEdit" sender:sender];
【问题讨论】:
【参考方案1】:您可以简单地连接故事板中的 segue,但从视图控制器到视图控制器。然后,您可以在准备好后以编程方式调用 segue:
[self performSegueWithIdentifier:@"leaguesEdit" sender:nil];
【讨论】:
这个答案中的措辞有点令人困惑,但想法是,在故事板中,segue 源应该是视图控制器而不是按钮,然后您以编程方式调用 segue。 非常感谢您的回复!实际上,我已经像这样在故事板中连接了segue。我遇到困难的部分是StoreKit
代表,我将把[self performSegueWithIdentifier:@"leaguesEdit" sender:nil];
放在哪里...目前我在上面发布的purchase
操作中拥有它,但这仍然在购买之前开始进行实际上是完整的。所以我不确定StoreKit
代表或其他任何地方是放置[self performSegueWithIdentifier:@"leaguesEdit" sender:nil];
的最佳位置。这有意义吗?【参考方案2】:
您可以通过 View Controller 按钮连接所有这些 segue,而不是直接从您的 Button 连接和创建 segue,该按钮位于故事板中您的视图下方。在这种情况下,您将拥有多个 segue,并且它们都不会单独连接到任何控件。您现在可以在您实际想要执行 segue 的位置使用下面的代码行。
[self performSegueWithIdentifier:@"yourSegue" sender:nil];
请注意情节提要中查看屏幕下方的黄色按钮。
从该按钮拖放一个 segue 到您要连接的视图控制器上。而当遇到上面这行代码时,会自动调用prepareForSegue
。
希望这会有所帮助。
【讨论】:
非常感谢@iCoder 的回复!实际上,我已经像这样在故事板中连接了segue。我遇到困难的部分是StoreKit
代表,我将把[self performSegueWithIdentifier:@"leaguesEdit" sender:nil];
放在哪里...目前我在上面发布的purchase
操作中拥有它,但这仍然在购买之前开始进行实际上是完整的。所以我不确定StoreKit
代表或其他任何地方是放置[self performSegueWithIdentifier:@"leaguesEdit" sender:nil];
的最佳位置。这有意义吗?以上是关于暂停 segue 直到 IAP 交易完成的主要内容,如果未能解决你的问题,请参考以下文章
土耳其暂停所有金融交易-股票市场熔断,里拉2021年下跌接近70%
土耳其暂停所有金融交易-股票市场熔断,里拉2021年下跌接近70%