【发布时间】:2017-07-29 08:09:32
【问题描述】:
我知道还有其他类似的问题,但到目前为止我还没有得到一个有效的答案,所以这就是我写这篇文章的原因。
我现在有以下代码来放置 leftBarButtonItem:
let user = FIRAuth.auth()?.currentUser
var imageView: UIImageView?
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
setupNavBar()
}
func setupNavBar() {
//left bar button item setup
let url = URL(string: (self.user?.photoURL?.absoluteString)!)
let data = try? Data(contentsOf: url!)
imageView?.image = UIImage(data: data!)
imageView?.layer.masksToBounds = true
imageView?.layer.borderWidth = 1.5
imageView?.layer.borderColor = UIColor.white.cgColor
imageView?.layer.cornerRadius=(imageView?.bounds.width)! / 2
let profileImageButton = UIBarButtonItem(image: UIImage(named: (self.user?.photoURL?.absoluteString)!), style: .plain, target: self, action:#selector(UserGroupsMainViewController.navLeftBarButtonTapped))
self.navigationController?.navigationItem.leftBarButtonItem = profileImageButton
}
func navLeftBarButtonTapped() {
}
由于某种原因,该按钮没有出现在导航控制器上。我确实知道我有一个不为零的 URL,因为我在打印输出中对其进行了测试。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
UIImage(named: (self.user?.photoURL?.absoluteString)!)是否返回图像并且self.navigationController?为零?self.user是零吗? -
你在分配imageview的frame吗
-
这个视图控制器是否真的嵌入在导航控制器中?还有你为什么用
self.navigationController?.navigationItem.leftBarButtonItem = ...而不是self.navigationItem.leftBarButtonItem = ...? -
您的代码中充满了炸弹 (
!) 等着引爆。请了解如何安全地解开可选项。 -
将
self.user?.photoURL?.absoluteString与UIImage(named:)一起使用是完全错误的,原因有很多。
标签: ios swift uinavigationcontroller uiimageview uibarbuttonitem