iOS:如何在当前的UIViewcontroller中关闭其他UIViewcontroller

时间:2016-01-22 02:55:14

标签: ios swift uiviewcontroller uiviewanimation

我有三个模态UIViewController“A”,“B”和“C”。 “A”和“C”是Portrait,“B”是“LandscapeRight”我单击“A”中的按钮,“B”UIViewController将出现,如果我单击“B”中的按钮,“C”UIViewController将出现,当我点击“C”中的按钮时,我想让“B”UIViewController在“C”UIViewController解雇之前解除

我尝试将“B”UIViewController添加到“C”并在点击按钮时忽略“B”

在“B”中

let c = UIViewController()
c.b = self
self.presentViewController(c, animated: true, completion: nil)

然后我点击“C”中的按钮

b.dismissViewControllerAnimated(true, completion: { () -> Void in
    self.dismissViewControllerAnimated(true, completion: { () -> Void in

    })
})

当“C”被解雇时,“B”仍然显示在屏幕上并且没有消失。

1 个答案:

答案 0 :(得分:0)

在存在的视图控制器消失之前,无法关闭视图控制器。 作为替代方案,您可以尝试这种方式,在B中添加bool变量,并在C中更改变量。

B中的代码:

var shouldShow:Bool = true

override func viewWillAppear(animated: Bool) {
    if !shouldShow{
        self.dismissViewControllerAnimated(false) { () -> Void in
            //
        }
    }
}

C代码:

@IBAction func clickButton(sender: AnyObject) {
    vc!.shouldShow = false
    self.dismissViewControllerAnimated(true, completion: { () -> Void in
        //
    })
}