我正尝试以编程方式将唯一的viewControllers添加到TabBarItems,并使用IBOutlet创建UITabBar控制器。
这是我创建UITabBar的代码
public class TabBarViewController: UIViewController, UITabBarDelegate {
@IBOutlet weak var tabBarCnt: UITabBar!
override public func viewDidLoad() {
super.viewDidLoad()
self.tabBarCnt.delegate = self
createTabBarController()
}
func createTabBarController() {
let firstVC = FirstViewController()
firstVC.name = nameVal
firstVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "ico_active", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 0)
firstVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);
let secondVC = SecondViewController()
firstVC.name = nameVal
firstVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "ico_active", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 0)
firstVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);
let thirdVC = ThirdViewController()
thirdVC.name = nameVal
thirdVC.tabBarItem = UITabBarItem.init(title: nil, image: UIImage(named: "ico_active", in: Bundle(for: TabBarViewController.self), compatibleWith: nil), tag: 0)
thirdVC.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: -5, right: 0);
tabBarCnt.items = [firstVC, secondVC, thirdVC]
self.view.bringSubviewToFront(tabBarCnt)
}
}
它不显示任何视图控制器。
如何基于我的代码创建UITabBar?
1条答案
按热度按时间nfs0ujit1#
UITabBar
不显示任何视图控制器。它只显示选项卡。最有可能的情况是,您应该使用
UITabBarController
,而不是独立的UITabBar
。更改您的TabBarViewController
类,以扩展UITabBarController
而不是UIViewController
,并删除UITabBar
插座。请注意,您不需要为每个视图控制器创建新的
UITabBarItem
示例。你也可以添加一个扩展到你的视图控制器来处理标签栏控制器的委托方法。