向右滑动即可在不使用Storyboard Swift的情况下解除ViewControlelr

时间:2017-10-09 18:40:03

标签: ios swift viewcontroller gestures

如何在不使用Storyboard的情况下关闭任何View Controller?我必须使用UINavigationController来实现这一目标吗?如果不是那么?

3 个答案:

答案 0 :(得分:1)

如果某人仍在努力解散(左,右,下,上) 我遇到了一个非常优雅而体面的鹰嘴豆panslip

用法非常简单

只需在viewDidLoad()中调用此方法

对于嵌入在导航控制器中的viewController

let viewControllerVC = self.navigationController

    viewControllerVC!.ps.enable(slipDirection: .leftToRight){
        
        //anything you want to do after dissming
        
    }

对于Simple View Controller

let viewControllerVC = self

    viewControllerVC!.ps.enable(slipDirection: .leftToRight){
        
        //anything you want to do after dissming
        
    }

对于嵌入在View Controller中的TableView

let viewControllerVC = self.YourTableview.parentContainerViewController()

    viewControllerVC!.ps.enable(slipDirection: .leftToRight){
        
        //anything you want to do after dissminn
        
    }

答案 1 :(得分:0)

如果你想向右滑动不是一种解雇,但我认为你希望它将UIViewController嵌入到UINavigationController中。

例如:

if let vc = UIStoryboard(name: "YourStoryboard", bundle: nil).instantiateViewController(withIdentifier: "YourViewController") as? YourViewController {
  let navigation = UINavigationController(rootViewController: vc)
  navigationController?.pushViewController(vc, animated: true)
}

答案 2 :(得分:0)

解除视图控制器的方法是在呈现视图控制器上调用dismiss方法。如果您通过致电self.present(_:animated:)向父母展示您的子控制器,则可以致电self.dismiss(animated:)。如果您使用了navigationController并调用了navigationController.push(_:animated:),那么您需要告诉导航控制器使用navigationController.popViewController(animated:)来解雇 方法名称可能不准确,但您应该能够通过自动完成来确定它们。