我正在尝试为我的项目找出正确的viewcontroller / segue结构,我需要一些帮助. 当’B’将从’A’呈现时,它检查一个陈述是否为真.只有在为真时,才应立即显示“C”而不是“B”.用户继续’
当’B’将从’A’呈现时,它检查一个陈述是否为真.只有在为真时,才应立即显示“C”而不是“B”.用户继续’D’,并且从’D’应该有一个退绕segue回到’B’.
我可以检查’B’的viewDidAppear()中的if语句,但是在加载viewcontroller’C’之前,视图将首先加载几毫秒.它看起来不太好看.
如果我尝试在viewDidLoad()中创建if语句,我会收到一个错误:
试图在“B”上显示“C”,其视图不在窗口层次结构中
也许有更好的方法来解决这个问题?
如果没有实际显示您所选择的每个ViewController,则无法使用segues.仅在实际呈现ViewController之后调用Segues,例如,您不能从viewDidLoad中进行调用.跳过具有segues的ViewController的唯一选择是,如果你设置两个不同的segue,一个你采取“完整路径”,比如说A-> B-> C,你可以跳过B,A-> ;C.所以你需要从A和B得到一个C的segue.
当然使用这种方法你不能使用unwind segue到一个根本没有呈现的ViewController.您可以通过不使用展开segues来解决此问题,但也可以通过“向后”设置segues来解决此问题.我所说的“向后”是指你设置一个segue说D-> B,然后你可以“回”到B,即使你的segues的顺序是A-> C-> D-> B.