Swift and Xcode - How to Create Custom Tab Bar Icons

后端 未结 4 1945
太阳男子
太阳男子 2021-01-30 11:34

I have a tabbed application project I am working on in Xcode written in Swift (Xcode 6.3 and Swift 1.2). I am having a lot of trouble with custom Tab Bar icons. I

4条回答
  •  爱一瞬间的悲伤
    2021-01-30 11:47

    class ViewController: UIViewController {
    
        @IBOutlet var btnHome : UIButton!
        @IBOutlet var btnInvoice : UIButton!
        @IBOutlet var btnSettings : UIButton!
        @IBOutlet var btnMyOrder : UIButton!
        @IBOutlet var btnLogout : UIButton!
    
        @IBOutlet weak var viewContainer: UIView!
    
        var navController : UINavigationController!
    
        var selectedIndex : Int! = 0
    
        var arrTabColor  = [UIColor(red: 35.0/255.0, green: 93.0/255.0, blue: 175.0/255.0, alpha: 1.0),
                            UIColor(red: 29.0/255.0, green: 86.0/255.0, blue: 167.0/255.0, alpha: 1.0),
                            UIColor(red: 35.0/255.0, green: 93.0/255.0, blue: 175.0/255.0, alpha: 1.0),
                            UIColor(red: 29.0/255.0, green: 86.0/255.0, blue: 167.0/255.0, alpha: 1.0),
                            UIColor(red: 35.0/255.0, green: 93.0/255.0, blue: 175.0/255.0, alpha: 1.0)]
    
        var arrTabIdentiFierVC       = ["FirstVC","SecondVC","FirstVC","FirstVC","SecondVC"]
    
    
        // MARK: - Life Cycle
    
        override func viewDidLoad()
        {
            super.viewDidLoad()
            setTabbarImage(0)
    
            // Do any additional setup after loading the view, typically from a nib.
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        func setTabBarClicked(_ storyIdentifier : String,identifier : String)
        {
            let aStoryboard  = UIStoryboard.init(name: storyIdentifier, bundle: nil)
            let newViewController = aStoryboard.instantiateViewController(withIdentifier: identifier)
    
            navController = UINavigationController(rootViewController: newViewController)
            self.addChildViewController(navController)
    
            navController.view.frame = viewContainer.frame
            newViewController.view.frame = viewContainer.frame
    
            self.viewContainer.addSubview(navController.view)
            newViewController.didMove(toParentViewController: self)
    
    
        }
    
        func setTabbarImage(_ selectedIndex : Int!)
        {
            btnHome.backgroundColor = arrTabColor[0]
            btnInvoice.backgroundColor = arrTabColor[1]
            btnSettings.backgroundColor = arrTabColor[2]
            btnMyOrder.backgroundColor = arrTabColor[3]
            btnLogout.backgroundColor = arrTabColor[4]
    
            let selectedColor = UIColor(red: 40/255, green: 142/255, blue: 206.0/255, alpha: 1.0)
    
            if selectedIndex == 0
            {
                btnHome.backgroundColor = selectedColor
    
            }
            else if selectedIndex == 1
            {
                btnInvoice.backgroundColor = selectedColor
    
            }
            else if selectedIndex == 2
            {
                btnSettings.backgroundColor = selectedColor
    
            }
            else if selectedIndex == 3
            {
                btnMyOrder.backgroundColor = selectedColor
            }
            else if selectedIndex == 4
            {
                btnLogout.backgroundColor = selectedColor
    
            }
        }
    
        // MARK: - Action Method
        @IBAction func HomeClicked(_ sender : AnyObject?)
        {
    
            setTabbarImage(0)
    
            setTabBarClicked("Main",identifier: arrTabIdentiFierVC[0])
    
        }
        @IBAction func InvoiceClicked(_ sender : AnyObject?)
        {
            setTabbarImage(1)
    
            setTabBarClicked("Main",identifier: arrTabIdentiFierVC[1])
    
        }
        @IBAction func SettingClicked(_ sender : AnyObject?)
        {
            setTabbarImage(2)
            setTabBarClicked("Main",identifier: arrTabIdentiFierVC[2])
    
    
        }
        @IBAction func MyorderClicked(_ sender : AnyObject?)
        {
            setTabbarImage(3)
            setTabBarClicked("Main",identifier: arrTabIdentiFierVC[3])
    
        }
        @IBAction func logoutClicked(_ sender : AnyObject?)
        {
            setTabbarImage(4)
    
    
            let alert = UIAlertController(title: "", message: "Are you sure want to logout?", preferredStyle: UIAlertControllerStyle.alert)
    
            let CancelAction = UIAlertAction(title: "NO", style: .default) { (action:UIAlertAction!) in
    
            }
            alert.addAction(CancelAction)
    
            let OKAction = UIAlertAction(title: "YES", style: .default) { (action:UIAlertAction!) in
    
              //  var isNav : Bool! = false
    
                //for objChild in (self.parent?.childViewControllers)!
               // {
    //                if objChild.isKind(of: LoginVC.self)
    //                {
    //                    self.navigationController!.popToViewController(objChild, animated: true)
    //                    CommonMethods.removeCustomObject(Constants.kUserProfile)
    //                    
    //                    isNav = true
    //                    break
    //                    
    //                }
               // }
               // if !isNav
               // {
    //                CommonMethods.removeCustomObject(Constants.kUserProfile)
    //                let aNavController = (AppDelegate.getDelegate().window!.rootViewController! as! UINavigationController)
    //                let storyboard = UIStoryboard(name: "Main", bundle: nil)
    //                var aVCObj = UIViewController()
    //                aVCObj = storyboard.instantiateViewController(withIdentifier: "LoginVC")
    //                var aMutArr = aNavController.viewControllers
    //                aMutArr.insert(aVCObj, at: 0)
    //                aNavController.viewControllers = aMutArr
    //                aNavController.popToRootViewController(animated: true)
              //  }
            }
            alert.addAction(OKAction)
            self.present(alert, animated: true, completion: nil)
        }
    
        // MARK: - Action Method
    
    
    }
    

提交回复
热议问题