【问题标题】:dismiss to home from another view controller swift 3从另一个视图控制器 swift 3 解雇回家
【发布时间】:2017-09-10 01:40:16
【问题描述】:

我的应用中有多个视图控制器。我想知道,有没有办法从第三种观点继续回家,但仍然驳回第三种观点?最好没有导航控制器。但请告诉我是否需要。感谢您的帮助。

【问题讨论】:

  • 你为什么不想使用导航控制器。这是实现所需行为的一种干净方式。另外,这个问题很难回答,因为你没有解释上下文。
  • 使用展开转场

标签: ios swift segue viewcontroller dismiss


【解决方案1】:

您需要实现自定义 Segue,然后将其应用到两个视图之间的 Segue。

这是一个示例(当前视图将替换前一个视图):

class ReplaceSegue: UIStoryboardSegue {
    override func perform() {
        let sourceController: UIViewController = self.sourceViewController
        let destinationController: UIViewController = self.destinationViewController
        let navigationController = sourceController.navigationController!
        let controllerStack = NSMutableArray(array: navigationController.viewControllers)

        controllerStack.replaceObjectAtIndex(controllerStack.indexOfObject(sourceController), withObject:destinationController)

        navigationController.setViewControllers(controllerStack as NSArray as! [UIViewController], animated: true)
    }
}

【讨论】:

    【解决方案2】:

    是的,这是可能的。在您的代码中尝试以下功能。 在您的主视图控制器中,输入一种欢迎/接收 segue 函数:

    @IBAction func unwindToVC(segue: UIStoryboardSegue) {
        if let sourceViewController = segue.source as?       *Name of third view controller* {
            //in here you can now access any information you 
            //want to retrieve from the third view controller
          }
     }
    
    //In your third viewController put the following:
    //make sure you assign cancelSegue to a button or whatever
    
    func cancelSegue() {
        performSegue(withIdentifier: "segueToMain", sender: self)
    }
    

    然后在你引用的第三个视图控制器的情节提要中,右键单击从视图控制器顶部的黄色圆圈拖动到橙色方块“退出”,然后它会弹出一个名为 unwindToVC 的选项并单击它。确保它被识别(正如你在 cancelSegue 中看到的,我的被称为 segueToMain 作为标识符。

    现在,当您在第三个视图控制器中时,您应该能够按下分配的按钮,它将执行转场

    这对我有用,希望对你有帮助

    【讨论】:

    • 没问题,很高兴它有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    相关资源
    最近更新 更多