SWRevealViewController 向呈现的对象添加手势 viewcontroller
SWRevealViewController add gesture to a presented viewcontroller
我在我的项目中使用 SWRevealViewController,它运行良好,TableView 有 6 个选项,每次按下都会导致不同的 ViewController。
当我手动实例化另一个 ViewController(称为 viewControllerModelos)时出现问题,这个 viewcontroller 没有链接到侧面菜单选项,但我确实需要那个 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())
}
}
}
目前您只是在展示 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
完美!非常感谢您的帮助,这对我有用。
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)
我在我的项目中使用 SWRevealViewController,它运行良好,TableView 有 6 个选项,每次按下都会导致不同的 ViewController。
当我手动实例化另一个 ViewController(称为 viewControllerModelos)时出现问题,这个 viewcontroller 没有链接到侧面菜单选项,但我确实需要那个 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())
}
}
}
目前您只是在展示 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
完美!非常感谢您的帮助,这对我有用。
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)