我有一个从标签栏控制器调用的视图,我想在其中有一个leftBarButtonItem、一个带徽标的topItem和一个rightBarButtonItem。
在第一个视图中,我成功地得到了带有徽标的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,但为什么呢?
当我从这个视图转到下一个视图时,我得到了leftBarButtonItem和rightBarButtonItem,并且topItem的徽标消失了。
**EDIT:**对于正在消失的topItem:self.navigationItem.titleView = imageView
而不是navigationBar.topItem?.titleView = imageView
解决了问题。
2条答案
按热度按时间3duebb1j1#
似乎您没有创建任何按钮,在设置图像之前,您必须创建按钮。同样,对于在进入第二个屏幕后消失的图像,有两个选项,您有您的选项卡栏控制器,在它下面,您有两个视图链接到您的选项卡栏控制器,从那里:
对于你的图像也是一样的情况1:
tjrkku2a2#
雨燕4.0
//后退按钮动作