0

我已经建立了一个可以正常工作的幻灯片菜单。每个按钮都指向一个新的视图控制器。与其单击子视图视图控制器的后退按钮返回主视图控制器以切换到下一个功能,我希望每个视图控制器都具有相同的滑动菜单。

我想在下图中用我的滑动菜单图标替换“<测试应用程序”,该图标指向与主菜单相同的菜单。

在此处输入图像描述

我已经快速阅读了每个视图控制器上的滑动菜单,但仍不清楚。我是 xcode/ios 的新手。

我找不到一些关于如何做到这一点的好文档。我在哪里可以找到我想做的 doc, tuto?

4

2 回答 2

2

步骤1

创建一个名为“BaseMenuController”的类,继承子类UIViewController

第2步

在 BaseMenuController 中,粘贴以下代码。

import UIKit

class BaseMenuController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        addMenuBarButtonItem()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func addMenuBarButtonItem() {
        let image = UIImage(named: "side_menuImage")
        let backItem = UIBarButtonItem(image: image,
                                       style: .plain,
                                       target: self,
                                       action: #selector(showSideMenu))

        self.navigationItem.leftBarButtonItem = backItem

    }

    @objc func showSideMenu(){
    if (UIApplication.shared.userInterfaceLayoutDirection == .leftToRight)       {
        self.sideMenuViewController.presentLeftMenuViewController()
    }else{
        self.sideMenuViewController.presentRightMenuViewController()
    }

   }
}

第 3 步

现在你的控制器类已经准备好了。你只需要在继承BaseMenuController时创建一个新的 Controller 类。将 BaseMenuController类作为子类。

import UIKit

class UIViewController:BaseMenuController  {


    override func viewDidLoad() {
        super.viewDidLoad()

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
于 2018-01-20T11:16:08.003 回答
1

您可以在 BaseViewController 类中添加 SideMenu Button。

func addMenuButtonToNavigationBar(){
    self.leftSearchBarButtonItem =  UIBarButtonItem(image: UIImage.init(named: "side_menu"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(showSideMenu))
    self.navigationItem.leftBarButtonItem = self.leftSearchBarButtonItem;
}
@objc func showSideMenu(){
    if (UIApplication.shared.userInterfaceLayoutDirection == .leftToRight) {
        self.sideMenuViewController.presentLeftMenuViewController()
    }else{
        self.sideMenuViewController.presentRightMenuViewController()
    }
}

并且在每个视图控制器的 viewwillappear() 方法中调用上述方法,例如 self.addMenuButtonToNavigationBar()

我正在使用 pod for sidemen。 https://github.com/romaonthego/RESideMenu

于 2018-01-20T09:33:21.653 回答