简体   繁体   中英

Tab Bar Item won't show

Currently I have 1 tab view controller, with 3 menus:

在此处输入图片说明

But when running, the bottom menu / image are like being cutted or didn't show perfectly like this:

在此处输入图片说明

在此处输入图片说明

It should have 3 menus.

Code:

import UIKit
class TabBarReimbursementViewController: UITabBarController{

    var loadTable: Bool = false

    override func viewWillAppear(animated: Bool) {
        self.viewControllers![selectedIndex].viewWillAppear(true)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        //        self.tabBar.barTintColor = UIColor.redColor()
        self.tabBar.tintColor = UIColor.blackColor()

        let addButton = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(TabBarReimbursementViewController.buttonClicked(_:)))

        navigationItem.rightBarButtonItem = addButton

        //       UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.whiteColor() ], forState: .Normal)

        UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor() ], forState: .Selected)

        let historySelected: UIImage! = UIImage(named: "history2.png")?.imageWithRenderingMode(.AlwaysOriginal)
        let approvalSelected: UIImage! = UIImage(named: "approve2.png")?.imageWithRenderingMode(.AlwaysOriginal)
        let listSelected: UIImage! = UIImage(named: "listlist2.png")?.imageWithRenderingMode(.AlwaysOriginal)

        (tabBar.items![1] ).selectedImage = historySelected
        (tabBar.items![0] ).selectedImage = approvalSelected
        (tabBar.items![2] ).selectedImage = listSelected

        self.selectedViewController = self.viewControllers![1]
        self.findHamburguerViewController()?.gestureEnabled = false
    }

    func buttonClicked(sender: UIBarButtonItem) {

        let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

        let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("MyRequestForm") as! myRequestForm
        nextViewController.formType = "New"
        self.navigationController!.pushViewController(nextViewController, animated: true)

    }

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

}

You CAPSPageMenu Library in which you can use tab bar controller very easily CAPSPageMenu

just add below code in Library

    _menuScrollView.translatesAutoresizingMaskIntoConstraints = NO;
    _menuScrollView.frame = CGRectMake(0.0, self.view.frame.size.width- _menuHeight,self.view.frame.size.width, _menuHeight);

The thing is that what you are doing is not how a tab bar controller's tab bar items work. Each child view controller (there are three of them in your storyboard screen shot) has its own tabBarItem , and that is how the tab bar gets populated.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM