精简版
当我单击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/