//
//  MPPositive_NavigationController.swift
//  MusicPlayer
//
//  Created by Mr.Zhou on 2024/4/19.
//

import UIKit
///b面导航栏
class MPPositive_NavigationController: MP_NavigationController {

    //重写pushViewController
    //每一次push都会执行这个方法，push之前设置viewController的hidesBottomBarWhenPushed
    override func pushViewController(_ viewController: UIViewController, animated: Bool) {
        viewController.hidesBottomBarWhenPushed = true
        super.pushViewController(viewController, animated: true)
        viewController.hidesBottomBarWhenPushed = false
    }
    //重写popViewController
    //每一次对viewController进行push的时候，会把viewController放入一个栈中
    //每一次对viewController进行pop的时候，会把viewController从栈中移除
    override func popViewController(animated: Bool) -> UIViewController? {
        guard self.children.count != 1 else {
            //特殊情况，当用户连续触发pop事件时进行容错处理
            return super.popViewController(animated: true)
        }
        guard self.children.count == 2 else {
            //如果viewController栈中存在的ViewController的个数超过两个，对要返回到的上一级的界面设置hidesBottomBarWhenPushed = true
            //把tabbar进行隐藏
            let count = self.children.count-2
            let controller = self.children[count]
            controller.hidesBottomBarWhenPushed = true
            NotificationCenter.notificationKey.post(notificationName: .sideA_hidden_show)
            return super.popViewController(animated: true)
        }
        //如果viewController栈中存在的ViewController的个数为两个，再返回上一级界面就是根界面了
        //那么要对tabbar进行显示
        let controller:UIViewController = self.children[0]
        controller.hidesBottomBarWhenPushed = false
        return super.popViewController(animated: true)
    }
}
