如何通过UIViewController扩展的任何类以编程方式创建选项卡:
class DashboardTabBarController: UITabBarController { override func viewDidLoad() { //here } ... }
更新SWIFT 5
如何以UITabBarController编程方式创建的一个示例如下所示:
UITabBarController
首先,我们创建UIViewControllers标签栏界面的每个标签的内容。对于此示例,我们仅创建一个非常简单的示例。
UIViewControllers
class Item1ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.green self.title = "item1" print("item 1 loaded") } }
现在,UITabBarController:
我们创建了UIViewControllers要显示在标签栏中的的新实例。然后,我们为创建的每个实例创建一个图标,然后创建一个数组,其中包含所有UIViewControllers为标签栏界面的每个标签指定内容的数组。 数组中视图控制器的顺序与选项卡栏中的显示顺序相对应 。
class DashboardTabBarController: UITabBarController, UITabBarControllerDelegate { override func viewDidLoad() { super.viewDidLoad() delegate = self } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) let item1 = Item1ViewController() let icon1 = UITabBarItem(title: "Title", image: UIImage(named: "someImage.png"), selectedImage: UIImage(named: "otherImage.png")) item1.tabBarItem = icon1 let controllers = [item1] //array of the root view controllers displayed by the tab bar interface self.viewControllers = controllers } //Delegate methods func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { print("Should select viewController: \(viewController.title ?? "") ?") return true; } }