Ios 我可以看一下';旁路';完全通过Segues的视图控制器?
短版 当我点击Ios 我可以看一下';旁路';完全通过Segues的视图控制器?,ios,uistoryboardsegue,xcode-storyboard,Ios,Uistoryboardsegue,Xcode Storyboard,短版 当我点击确认时,我想转到完成购买,如果用户档案中没有付款信息,则再次直接转到收集付款信息,而不查看完成购买视图。我正在调用viewDidLoad中的第二个segue,从Complete Purchase开始,我(简短地)看到Complete Purchase屏幕,然后再继续 更多的话 我这里有一个相当常见的场景;具有三个不同视图控制器的购买功能。一般情况下,用户会单击ShoppingCart.confirm,这会导致“Show”切换到CompletePurchase。然后,用户可以购买(此
确认
时,我想转到完成购买
,如果用户档案中没有付款信息,则再次直接转到收集付款信息
,而不查看完成购买
视图。我正在调用viewDidLoad
中的第二个segue,从Complete Purchase
开始,我(简短地)看到Complete Purchase
屏幕,然后再继续
更多的话
我这里有一个相当常见的场景;具有三个不同视图控制器的购买功能。一般情况下,用户会单击ShoppingCart.confirm,这会导致“Show”切换到CompletePurchase
。然后,用户可以购买(此处不感兴趣)或单击CompletePurchase.EditPaymentInfo
,这将触发一个“模式”切换到GatherPaymentInfo
。取消GatherPaymentInfo
将返回到CompletePurchase
,新的付款信息现在可用
所有这些都很好,但有时用户没有任何存储的付款信息。在CompletePurchase中,我想做的是注意到用户没有支付信息,并直接将其分配给GatherPaymentInfo
控制器。完成后,用户会像以前一样解聘,并准备完成购买
即使这样也没问题,因为我在CompletePurchase.viewDidLoad()
中执行了这个步骤
问题是,没有支付信息的用户在进入GatherPaymentInfo
屏幕的过程中会短暂看到CompletePurchase
屏幕。我希望这一转变是透明的
我是否可以在没有向用户显示中间人的情况下执行第二个步骤(完成购买过程)?
我已经解决了这个问题,在ShoppingCart
->完成购买之前做出了决定,并执行了不同的步骤,但感觉非常不干净
也许有更好的方法来完成这个任务,我想听听大家对这个问题的看法和答案——谢谢
不起作用的事物
我天真地试图在viewDidLoad()
中逃跑:
根据需要继续,但不在简要显示CompletePurchase视图之前
我已经解决了这个问题,在购物车->CompletePurchase segue之前做出了决定,并执行了不同的segue,但感觉非常不干净
我认为你的评估完全错了。如果您在这种情况下实际上不需要CompletePurchase视图控制器的开销,那么这绝对是最干净的解决方案!我想说的是,你应该快乐地向前走。好吧,和往常一样,当人们告诉我我完全错了时,我很感激:-)。但说真的,它确实按原样工作。在其他情况下,我也希望这样做,这样我就可以在正确的位置结束,而不必重新检查状态并再次重定向。你的观点肯定被采纳了。谢谢。考虑一下如果没有故事板,你会怎么做(以前是这样)。您将有一个条件决定实例化和推送哪个视图控制器。在故事板序列之间进行选择是完全平行的。我看不出有什么问题,当然。很公平。我在这里想的是,完整购买的“状态”需要做购物车聚合和支付信息协调的工作。然后,无论我如何进入购买状态,它都会处理一切。诚然,这是一个人为的要求,我非常喜欢在大头针上跳舞。我怀疑它会保持原样。
override func viewDidLoad() {
if bad_condition == true {
performSegue(withIdentifier: to, sender: self)
return
}
super.viewDidLoad()
}