代码之家  ›  专栏  ›  技术社区  ›  Shekar

将自定义uinavigationbar与uinavigationcontroller一起使用时,请删除“后退”按钮

  •  0
  • Shekar  · 技术社区  · 6 年前

    当我用自定义uinavigationbar初始化uinavigationcontroller时,我很难找到删除“ghost”后退按钮(只有一个蓝色的返回箭头)的方法。当我点击后退按钮时,我会看到我的自定义导航栏,但我不想点击后退按钮。

    我已经尝试了几乎所有其他的解决方案,包括setHidesBackButton等,并按照调用这些函数的顺序进行了处理。

    class TabsVC : UITabBarController {
    
    func setupTabBar() {
        // setup feed tab
        let navVC = UINavigationController(navigationBarClass: NavBar.self, toolbarClass: nil)
    
        self.navigationItem.setHidesBackButton(true, animated: false)
    
        let feedVC = FeedVC()
        navVC.pushViewController(feedVC, animated: false)
        let feedIcon = UIImage.fontAwesomeIcon(name: .home, textColor: ColorConstants.baseColor, size: CGSize(width: 40, height: 40))
        navVC.tabBarItem = UITabBarItem(title: "", image: feedIcon, tag: 1)
    
        // other tabs stuff
    }
    
    class NavBar : UINavigationBar {
    
    func prepare() {
        let item = UINavigationItem(title: "")
        let titleV = titleView()
        item.titleView = titleV
    
        item.hidesBackButton = true
        item.setHidesBackButton(false, animated: false)
    
        item.leftBarButtonItem = UIBarButtonItem(image: UIImage.fontAwesomeIcon(name: .userCircle, textColor: ColorConstants.baseColor, size: CGSize(width: 40, height: 40)), style: .plain, target: nil, action: nil)
        item.leftBarButtonItem?.tintColor = .white
        item.leftBarButtonItem?.action = #selector(moveToProfileScreen)
        self.pushItem(item, animated: false)
    }
    

    0 回复  |  直到 6 年前