繁体   English   中英

UIBarButton 项不会出现在导航栏中

[英]UIBarButton Item Won't Appear in Navigation Bar

我知道还有其他类似的问题,但到目前为止我还没有得到一个有效的答案,所以这就是我写这篇文章的原因。

我现在有以下代码来放置一个 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,因为我在打印输出中对其进行了测试。 任何帮助,将不胜感激。 谢谢!

只需使用navigationItem而不是navigationController.navigationItem

好的,我刚看到你的问题。

您正在使用 URL 作为图像的“名称”。 它不会那样工作。

函数UIImage(named: "blah")将从存储的应用程序包中加载一个图像,该图像以给定的名称存储。

如果要从 URL 下载图像,则需要在后台运行下载任务,然后在完成后加载图像。

也尝试使用 AlamofireImage 框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM