繁体   English   中英

SWRevealViewController向显示的ViewController添加手势

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM