在tabBar中添加了一個空白控制器,外邊覆蓋了一個按鈕.可是按鈕添加以後不顯示.後來發現應該把代碼寫在ide
viewDidLayoutSubviews方法裏邊,而不是viewDidLoad裏邊.spa
class MainViewController: UITabBarController {3d
override func viewDidLoad() {orm
super.viewDidLoad()get
addChildViewControllers()it
}io
private func addChildViewController(vc: UIViewController, title: String, imageName: String) {class
tabBar.tintColor = UIColor.orangeColor()cli
vc.title = titlefile
vc.tabBarItem.image = UIImage(named: imageName)
let nav = UINavigationController(rootViewController: vc)
addChildViewController(nav)
}
private func addChildViewControllers() {
addChildViewController(HomeTableViewController(), title: "首頁", imageName: "")
addChildViewController(MessageTableViewController(), title: "消息", imageName: "")
addChildViewController(UIViewController())
addChildViewController(DiscoverTableViewController(), title: "發現", imageName: "")
addChildViewController(ProfileTableViewController(), title: "我", imageName: "")
}
private lazy var composeButton: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "cmp_inf_select"), forState: UIControlState.Normal)
btn.addTarget(self, action: "clickComposeButton", forControlEvents: UIControlEvents.TouchUpInside)
self.tabBar.addSubview(btn)
return btn
}()
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
setUpComposeButton()
}
private func setUpComposeButton() {
let w = self.tabBar.bounds.width / CGFloat(childViewControllers.count)
let rect = CGRectMake(0, 0, w, self.tabBar.bounds.height)
composeButton.frame = CGRectOffset(rect, 2 * w, 0)
}
func clickComposeButton() {
print("clickComposeButton")
}