如何在xcode 7中创建导航菜单

时间:2017-05-03 09:58:17

标签: ios swift xcode

如何为整个项目创建一个导航菜单 我只使用SWRevealViewController为特定视图创建了一个 enter image description here

2 个答案:

答案 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 } }

中调用addMenu()
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是不可能的。