"模态呈现"没有显示何时已呈现另一个模态

时间:2015-08-18 05:15:56

标签: ios swift

在我的iOS应用程序中,我的VC通过代码呈现模式(A)。

但是,当我已经有另一个模态(B)时,这个模式根本没有显示。

然而,当(A)被解除时,我看到(B)也会被取消。

如何确保(B)始终显示,无论如何,并且在所有其他模态之前?

performSegueWithIdentifier(SEGUES.SegueTabBarToBroadcast, sender: view ) 

我的TabBarViewController正在调用此segue。 (根据故事板,segue是模态的。)

当我的TabBar中的一个视图控制器呈现模态时,会出现问题。然后,当我尝试调用performSegueWithIdentifier时,模态不会显示(但是当我关闭另一个模态时会停止)。

我只是想让这个模态无关紧要。此模态应与所有其他模态重叠。

我也试过这个,但问题仍然存在:

        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let bvc = storyboard.instantiateViewControllerWithIdentifier("BroadcastViewController") as! BroadcastViewController
        self.presentViewController( bvc , animated: true, completion: nil)

1 个答案:

答案 0 :(得分:0)

将多个视图控制器作为模态呈现并不是一种好习惯。如果您想要呈现您的vc,无论如何,您必须了解视图控制器的层次结构。不久,您可以在具有窗口的视图上以模态方式呈现视图控制器,并且当您已经以模态方式呈现任何vc时,呈现vc的视图控制器视图没有窗口,因此无法呈现其他视图控制器模态。结论:您可以从最顶层的vc中以模态方式呈现vc。因此,解决方案将保持对最顶层vc的引用,并从该vc呈现所需的vc。另一个解决方案是将vc的视图直接添加到应用程序的主窗口,但我不建议以这种方式解决您的问题。希望,这有帮助。