在 swift 中隐藏一个 UIViewController(屏幕)

Hide a UIViewController (Screen) in swift

如您所见,屏幕流程如下:

单击 'screen A' 的 'button2' 后,应用会显示来自具有标签栏的同一故事板的 'screen B'。 单击 'screen B' 的 'red tab' 后,应用程序显示 'green button'(右上角)。 单击 'screen B' 的 'green button' 后,应用显示故事板 2 的 'screen C'。

我需要在单击 'screen C' 的后退按钮后返回到 'Storyboard 1' 的 'screen B',无论 'screen C' 究竟从哪里出现并且 [= 'Storyboard 2' 的 32=] 应该从上到下消失。

是否可以这样做,如果可以那么怎么做?

是的,您可以隐藏 UIViewController,因为您的 UIViewController 只是正常的 UIView

所以只需为您的 UIView 创建一个 @IBOutlet 并使用 .hidden 方法 像这样:

 @IBOutlet weak var mainview: UIView!
 override func viewDidLoad() {
    super.viewDidLoad()

   mainview.hidden = true
}

编辑:
正确指定你想要达到的目标。你的显示 viewController 是来自屏幕 A 还是 B 并不重要,直到应该有一些条件或者 ViewController 需要一些输入值(字符串、整数等)来处理它。

编辑2:
参考这个答案 How to check which segue was used

编辑3:
根据您的编辑答案(移动到 ScreenC 到 ScreenB,无论 screenC 来自 ScreenA 还是 ScreenB)最好使用三个独立的 3 故事板并根据需要调用目标 ViewController。

这里是 ViewController class 的代码(移动 ScreenA -> ScreenBScreenA -> ScreenC )

@IBAction func buttonAisClick(sender: AnyObject) {
// move to ScreenC directly
    var moveToNextVC:ViewController3 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController3") as! ViewController3

    self.presentViewController(moveToNextVC, animated: true, completion: nil)
}


@IBAction func ButtomBisClick(sender: AnyObject) {
// move to ScreenB
    var moveToNextVC:ViewController2 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2

    self.presentViewController(moveToNextVC, animated: true, completion: nil)
}

代码 ViewController2 class(从 ScreenB -> ScreenC

@IBAction func ScreenBbuttonIsClick(sender: AnyObject) {
// move to ScreenC
    var moveToNextVC:ViewController3 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController3") as! ViewController3

    self.presentViewController(moveToNextVC, animated: true, completion: nil)

}

ViewController3 class 的代码(从 ScreenC -> ScreenB

@IBAction func ScreenCbuttonIsclick(sender: AnyObject) {
    var moveToNextVC:ViewController2 = self.storyboard?.instantiateViewControllerWithIdentifier("ViewController2") as! ViewController2

    self.presentViewController(moveToNextVC, animated: true, completion: nil)
}

我实现了 segue 并添加了动画,效果很好。