暂停 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
    

segueViewController 相连。而它所在的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 交易完成的主要内容,如果未能解决你的问题,请参考以下文章

暂停交易是不是超时?

SEC暂停区块链公司UBI Blockchain证券交易

土耳其暂停所有金融交易-股票市场熔断,里拉2021年下跌接近70%

土耳其暂停所有金融交易-股票市场熔断,里拉2021年下跌接近70%

土耳其暂停所有金融交易-股票市场熔断,里拉2021年下跌接近70%

IOS内购(IAP)的那些事