ios - 我可以通过Segues在视觉上完全“绕过” View Controller吗?-LMLPHP

精简版

当我单击confirm时,我想锁定到Complete Purchase,如果用户没有归档的付款信息,请再次直接将其直接锁定到Gather Payment Info,而不会看到Complete Purchase视图。我正在从viewDidLoad呼叫Complete Purchase中的第二个segue,并且(继续)我先简要地看到Complete Purchase屏幕。

更多单词

我在这里有一个相当普遍的情况。具有三个不同View Controller的购买能力。通常,用户会单击ShoppingCart.confirm,这会导致CompletePurchase出现“显示”提示。然后,用户可以购买(在此不感兴趣)或单击CompletePurchase.EditPaymentInfo,这会触发对GatherPaymentInfo的“模态”选择。撤消GatherPaymentInfo将会退回到CompletePurchase,并且现在可以使用新的付款信息。

所有这些都很好,但是有时用户没有任何存储的付款信息。我想在CompletePurchase中做的是,注意用户没有付款信息,然后直接将其隔离到GatherPaymentInfo控制器。完成后,用户将像以前一样解雇,并准备完成购买。

即使这样也很好,因为我在CompletePurchase.viewDidLoad()中执行了segue。

问题是没有付款信息的用户在进入CompletePurchase屏幕的途中会短暂看到GatherPaymentInfo屏幕。我希望这种过渡看起来很简单。

我可以在不向用户显示中间人(CompletePurchase)的情况下执行第二次搜索吗?

我已经通过在ShoppingCart-> CompletePurchase顺序之前做出决定并执行不同的顺序来解决该问题,但是感觉很不干净。

也许有一种更好的方法可以在这里完成任务,我会对这方面的观点以及问题的答案感兴趣-谢谢!

无效的东西

我天真地试图逃避viewDidLoad()

  override func viewDidLoad() {
        if bad_condition == true {
            performSegue(withIdentifier: to, sender: self)
            return
        }
        super.viewDidLoad()
    }


它会按需继续,但在短暂显示CompletePurchase视图之前不会继续。

最佳答案

我已经通过在ShoppingCart-> CompletePurchase segue之前做出决定并执行不同的segue来解决该问题,但是感觉很不干净。


我认为您的评估完全错误。如果您在那种情况下实际上不需要CompletePurchase视图控制器的开销,那绝对是最干净的解决方案!我说你应该快乐地前进。

关于ios - 我可以通过Segues在视觉上完全“绕过” View Controller吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50865587/

10-09 09:15