NavigationItem TitleView推送通知后错误的位置

时间:2017-07-07 08:33:59

标签: ios swift uiimageview uinavigationbar uinavigationitem

我有ChatViewController,我将其设置在navigationItem.titleView UIView中,其中包含UIImageView。我在viewWillAppear中为UIImageView安装了图像,一切正常。但是,当我通过点击“通知”按钮打开ChatViewController时,UIImageView会在右上角显示一张图片。我尝试了各种选择,但他们帮助了我。请告诉我如何解决这个问题?谢谢。

   override func viewDidLoad() {
        super.viewDidLoad()
        ChatGeneralManager.shared.enterChatViewController()
        super.chatItemsDecorator = ChatItemsDecorator()
        // Settings
        setupSettings()
        // UI 
        addProfileImageView()
    }

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        setupConversationImage()
    }

private func addProfileImageView() {
    guard friendImageView == nil else { return }
    let titleView = UIView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
    friendImageView = UIImageView()
    friendImageView.layer.cornerRadius = 35 / 2
    friendImageView.frame = titleView.bounds
    friendImageView.layer.masksToBounds = true
    titleView.addSubview(friendImageView)

    friendImageView.contentMode = .scaleAspectFill
    friendImageView.clipsToBounds = true
    navigationItem.titleView = titleView
}

enter image description here

当我切换到推送通知时,这就是TitleView的样子,当然,当屏幕完全打开时,它就在中心。当然,有一个选项可以在viewDidAppear中设置图像,但是在那里可以注意到TitleView在开头是空的。这是非常有趣的,为什么当简单的开放工作很好,当他按下推送通知,这是一个非常不利的。在那里,打开ChatViewController,这个函数

navigationController?.pushViewController(chatViewController, animated: true)

0 个答案:

没有答案