Я не использую пользовательскую навигационную панель с AKSideMenu в swift - PullRequest
0 голосов
/ 14 июня 2019

Я хочу использовать свою пользовательскую панель навигации, я делаю все настройки на плате, но когда я запускаю свое приложение, оно приходит первым, как и при переходе на другие страницы, стандартная панель навигации входит в стандартные настройки.

Я уже пробовал добавить навигационную панель с кодом

Этот кодовый блок LeftMenuViewController


import UIKit

public class LeftMenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var tableView: UITableView?

    required public init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    override public func viewDidLoad() {
        super.viewDidLoad()

        let tableView = UITableView(frame: CGRect(x: 0, y: (self.view.frame.size.height - 54 * 5) / 2.0, width: self.view.frame.size.width, height: 54 * 5), style: .plain)
        tableView.autoresizingMask = [.flexibleTopMargin, .flexibleBottomMargin, .flexibleWidth]
        tableView.delegate = self
        tableView.dataSource = self
        tableView.isOpaque = false
        tableView.backgroundColor = .clear
        tableView.backgroundView = nil
        tableView.separatorStyle = .none
        tableView.bounces = false

        self.tableView = tableView
        self.view.addSubview(self.tableView!)
    }

    // MARK: - <UITableViewDelegate>

    public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        switch indexPath.row {
        case 0:
            self.sideMenuViewController!.setContentViewController(UINavigationController(rootViewController: self.storyboard!.instantiateViewController(withIdentifier: "haberlerVC")), animated: true)
            self.sideMenuViewController!.hideMenuViewController()

        case 1:
            self.sideMenuViewController!.setContentViewController(UINavigationController(rootViewController: self.storyboard!.instantiateViewController(withIdentifier: "duyurularVC")), animated: true)
            self.sideMenuViewController!.hideMenuViewController()

        case 2:
            self.sideMenuViewController!.setContentViewController(UINavigationController(rootViewController: self.storyboard!.instantiateViewController(withIdentifier: "firmalarVC")), animated: true)
            self.sideMenuViewController!.hideMenuViewController()

        case 3:
            self.sideMenuViewController!.setContentViewController(UINavigationController(rootViewController: self.storyboard!.instantiateViewController(withIdentifier: "birimlerVC")), animated: true)
            self.sideMenuViewController!.hideMenuViewController()

        default:
            break
        }
    }

    // MARK: - <UITableViewDataSource>

    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 40
    }

    public func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    public func tableView(_ tableView: UITableView, numberOfRowsInSection sectionIndex: Int) -> Int {
        return 7
    }

    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cellIdentifier: String = "Cell"

        var cell: UITableViewCell? = tableView.dequeueReusableCell(withIdentifier: cellIdentifier)

        if cell == nil {
            cell = UITableViewCell(style: .default, reuseIdentifier: cellIdentifier)
            cell!.backgroundColor = .clear
            cell!.textLabel?.font = UIFont(name: "HelveticaNeue", size: 21)
            cell!.textLabel?.textColor = .white
            cell!.textLabel?.highlightedTextColor = .lightGray
            cell!.selectedBackgroundView = UIView()
        }

        var titles = ["Haberler", "Duyurular", "Firmalar", "Yönetim Kurulu", "Bölge Müdürlüğü", "Hizmet Birimleri", "Öneri Şikayet"]
        var images = ["haberler", "duyurular", "firmalar", "yonetim", "bolgemudurlugu", "birimler", "oneri" ]
        cell!.textLabel?.text = titles[indexPath.row]
        cell!.imageView?.image = UIImage(named: images[indexPath.row])

        return cell!
    }
}

// Этот блок кода - мой RootViewController, и у него нет панели навигации на раскадровке


import UIKit
import AKSideMenu

public class RootViewController: AKSideMenu, AKSideMenuDelegate {

    override public func awakeFromNib() {
        super.awakeFromNib()
        self.menuPreferredStatusBarStyle = .lightContent
        self.contentViewShadowColor = .black
        self.contentViewShadowOffset = CGSize(width: 0, height: 0)
        self.contentViewShadowOpacity = 0.6
        self.contentViewShadowRadius = 12
        self.contentViewShadowEnabled = true

        self.backgroundImage = UIImage(named: "menubg")
        self.delegate = self

        if let storyboard = self.storyboard {
            self.contentViewController = storyboard.instantiateViewController(withIdentifier: "contentViewController")

            self.leftMenuViewController = storyboard.instantiateViewController(withIdentifier: "leftMenuViewController")
        }
    }

    // MARK: - <AKSideMenuDelegate>

    public func sideMenu(_ sideMenu: AKSideMenu, willShowMenuViewController menuViewController: UIViewController) {
        print("willShowMenuViewController")
    }

    public func sideMenu(_ sideMenu: AKSideMenu, didShowMenuViewController menuViewController: UIViewController) {
        print("didShowMenuViewController")
    }

    public func sideMenu(_ sideMenu: AKSideMenu, willHideMenuViewController menuViewController: UIViewController) {
        print("willHideMenuViewController")
    }

    public func sideMenu(_ sideMenu: AKSideMenu, didHideMenuViewController menuViewController: UIViewController) {
        print("didHideMenuViewController")
    }
}

Ошибка визуальная,

сначала запустите мой пользовательский navbar https://user -images.githubusercontent.com / 13061013 / 59485353-3227bf80-8e7e-11e9-81d7-cec51bc328be.png

постучал по другой странице меню или той же странице https://user -images.githubusercontent.com / 13061013 / 59485352-3227bf80-8e7e-11e9-832c-a18211167272.png

1 Ответ

0 голосов
/ 14 июня 2019

Если я не ошибаюсь, вы хотите иметь собственную настраиваемую панель навигации во всех UIViewControllers.

откройте AppDelegate .swift и добавьте ниже код.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        let color : UIColor = UIColor.white
        let buttonFont : UIFont = UIFont.systemFont(ofSize: 14.0)
        let titleFont : UIFont = UIFont.systemFont(ofSize: 18.0)
        let attributes = [
            NSAttributedStringKey.foregroundColor : color,
            NSAttributedStringKey.font : buttonFont
        ]
        UINavigationBar.appearance().titleTextAttributes = [
            NSAttributedStringKey.foregroundColor : color,
            NSAttributedStringKey.font : titleFont
        ]
        UINavigationBar.appearance().barTintColor = UIColor.blue
        UINavigationBar.appearance().tintColor = UIColor.white


        return true
    }
...