[英]SWRevealViewController add gesture to a presented viewcontroller
我在我的项目中使用SWRevealViewController,它运行良好,TableView有6个选项,每个按都会导致一个不同的ViewController。
问题出在我手动实例化另一个ViewController(称为viewControllerModelos)时,该viewcontroller未链接到侧边菜单选项,但我确实需要从该viewcontroller中将其显示出来。
我呈现了正确实例化的ViewController,但是滑动时没有出现侧边菜单,尽管我在该ViewController中添加了手势
有人可以告诉我的方式吗?
下面的代码在一个视图控制器中,其中显示了侧面菜单
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewControllerModelos = storyBoard.instantiateViewController(withIdentifier: "viewControllerModelos") as! VC_catalogo_modelos
self.present(viewControllerModelos, animated: true, completion: nil)
下面的代码是实例化的viewcontroller的代码
import Foundation
import UIKit
class VC_catalogo_modelos: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
if revealViewController() != nil {
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
}
}
}
完善! 非常感谢您的帮助,这对我很有帮助。
let sw = revealViewController()
// can place sw with revealViewCOntroller identifier
self.view.window?.rootViewController = sw
let viewControllerModelos = storyboard!.instantiateViewController(withIdentifier: "viewControllerModelos") as! VC_catalogo_modelos
let navigationController = UINavigationController(rootViewController: viewControllerModelos)
navigationController.navigationBar.isHidden=false
navigationController.setNavigationBarHidden(true, animated: false)
sw!.setFront(navigationController, animated: true)
当前,您只是呈现VC_catalogo_modelos,因此您没有将root设置为RevealViewController,因此在您的情况下没有任何效果
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let sw = storyboard.instantiateViewController(withIdentifier: "sw") as! SWRevealViewController // can place sw with revealViewCOntroller identifier
self.view.window?.rootViewController = sw
let viewControllerModelos = storyBoard.instantiateViewController(withIdentifier: "viewControllerModelos") as! VC_catalogo_modelos
let navigationController = UINavigationController(rootViewController: viewControllerModelos!) // using navigationController can help in future if there are other controller on action
navigationController.navigationBar.isHidden=false // unhide if you need navigationController bar
navigationController.setNavigationTints()
sw.setFront(navigationController, animated: true)
//pushFrontViewController(navigationController, animated: true) Use only if you require a push otherwise setFront
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.