答案 0 :(得分:1)
你不能以两种方式做到这一点。
a)创建一个带侧边菜单的ViewController,并在每次需要侧边菜单时为视图控制器创建子类。
--threads
和子类class BaseViewController: UIViewController {
override func viewDidLoad() {
let menuButton = UIBarButtonItem.init(image: image, style: .plain, target: self, action: #selector(funcToCall))
navigationItem.leftBarButtonItem = menuButton
}
}
BaseViewController
b)另一种方法,更好的方法是使用class MyViewController: BaseViewController {
}
extension
并在extension UIViewController {
func addMenu() {
let menuButton = UIBarButtonItem.init(image: image, style: .plain, target: self, action: #selector(SWRevealViewController.rightRevealToggle(_:)))
navigationItem.leftBarButtonItem = menuButton
}
}
MyViewController
许多方法之一是创建一个快速文件class MyViewController: UIViewController {
override func viewDidLoad() {
addMenu()
}
}
然后
Helper.swift
答案 1 :(得分:0)
您可以使用导航控制器嵌入RevealVC并将导航项添加到RevealVC,但这样的菜单将是静态的。
我通常使用TopViewController类:
class TopViewController: UIViewController {
@IBOutlet weak var menuButton: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
revealViewController().rightViewRevealWidth = view.frame.size.width / 2
menuButton.target = revealViewController()
menuButton.action = #selector(SWRevealViewController.rightRevealToggle(_:))
view.addGestureRecognizer(revealViewController().panGestureRecognizer())
}
}
}
每个视图控制器都将继承此选项。在这种情况下,您应该在每个视图控制器的故事板中创建navigationVC(我认为这是最佳解决方案)。不要忘记将故事板中的插座拖到TopViewController。
我想,只创建一个NavigationVC是不可能的。