我有一個視圖是誰從一個標籤欄控制器調用,我想要一個leftBarButtonItem,一個帶標誌的topItem和一個rightBarButtonItem。NavigationItem左側和頂部沒有顯示
在第一個視圖中,我成功地將topItem與徽標和rightBarButtonItem一起使用,但不可能通過編程方式或在故事板中拖動它來獲得leftBarButtonItem。 我不明白爲什麼。這是代碼。
private func setNavBarItems() {
self.navigationItem.leftBarButtonItem?.image = UIImage(named: "empty-photo-red")
if let navigationBar = self.navigationController?.navigationBar as? SeetyNavigationBar {
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
imageView.contentMode = .ScaleAspectFit
let image = UIImage(named: "logo-trans")
imageView.image = image
navigationBar.topItem?.titleView = imageView
}
self.navigationItem.rightBarButtonItem!.image = UIImage(named: "FAQ")
}
如果我解開leftBarButton以 「!」應用程序崩潰,所以我想沒有leftBarButton,但爲什麼?
當我從這個視圖執行segue到下一個時,我得到了leftBarButtonItem和rightBarButtonItem以及帶有標誌的topItem消失。我用我在viewDidLoad()
編輯調用相同的功能:對於我topItem誰正在消失:self.navigationItem.titleView = imageView
而不是navigationBar.topItem?.titleView = imageView
解決了這個問題。
對於導航欄中的第一個控制器,iOS不會自動添加左欄,因爲沒有'上一個'控制器。如果需要,您將需要手動添加它:參考:http://stackoverflow.com/questions/20949844/add-left-and-right-bar-button-item-in-category-of-navigation-controller-class – Shripada