如何从UIViewController扩展的任何类以编程方式创建选项卡:
class DashboardTabBarController: UITabBarController {
override func viewDidLoad() {
//here
}
...
}
如何从UIViewController扩展的任何类以编程方式创建选项卡:
class DashboardTabBarController: UITabBarController {
override func viewDidLoad() {
//here
}
...
}
UPDATE SWIFT 5
通过编程方式创建一个UITabBarController
的例子:
首先,我们创建UIViewControllers
,这将是选项卡栏界面的每个选项卡的内容.对于这个例子,我们只创建一个非常简单的.
class Item1ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.green
self.title = "item1"
print("item 1 loaded")
}
}
现在,UITabBarController
:
我们创建要在选项卡栏中显示的UIViewControllers
的新实例.然后我们为我们创建的每个实例创建一个图标,然后我们创建一个数组,其中包含所有UIViewControllers
个指定选项卡栏界面每个选项卡内容的元素.The order of the view controllers in the array corresponds to the display order in the tab bar
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;
}
}