我已经在swift 4中实现了自定义的后退按钮,但是该按钮没有显示。我可以在它所在的层中看到它,但它在背面,无法将其带到正面。 这是我在viewDidload中的代码:
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = UIColor.white
collectionView?.translatesAutoresizingMaskIntoConstraints = false
collectionView?.contentInset = UIEdgeInsets(top: 8, left: 0, bottom: 58, right: 0)
collectionView?.scrollIndicatorInsets = UIEdgeInsets(top: 0, left: 0, bottom: 50, right: 0)
collectionView?.alwaysBounceVertical = true
collectionView?.backgroundColor = UIColor(patternImage: UIImage(named: "chat-bg")!)
collectionView?.register(ChatMessageCell.self, forCellWithReuseIdentifier: cellId)
collectionView?.keyboardDismissMode = .interactive
let username = Auth.auth().currentUser?.displayName
let backbutton = UIButton(type: .custom)
backbutton.translatesAutoresizingMaskIntoConstraints = false
backbutton.setImage(UIImage(named: "back"), for: .normal) // Image can be downloaded from here below link
backbutton.setTitle(username, for: .normal)
backbutton.setTitleColor(backbutton.tintColor, for: .normal) // You can change the TitleColor
backbutton.addTarget(self, action: #selector(backAction), for: .touchUpInside)
self.navigationController?.navigationItem.backBarButtonItem = UIBarButtonItem(customView: backbutton)
self.navigationController?.navigationBar.addSubview(backbutton)
setupInputComponents()
setupKeyboardObservers()
}
答案 0 :(得分:0)
添加此
UIApplication.shared.keyWindow!.bringSubviewToFront(self.navigationController?.navigationBar)
OR
self.navigationController?.navigationBar.layer.zPosition = 1
self.navigationController?.navigationBar.alpha = 1.0
self.navigationController?.navigationBar.translucent = false
答案 1 :(得分:0)
能否请您收集的最高约束条件查看,它需要来自超级视图或安全区域,而不是来自主视图的顶部。基本上,集合视图会隐藏导航栏。如果您可以告诉我集合视图约束,则将帮助您轻松解决问题。
答案 2 :(得分:0)
我终于解决了。该问题与我的代码的这一部分无关。它与另一个控制器有关,该控制器是CustomTabController并包含navigationBar。我无法通过此代码覆盖它。因此,我将navigationBar部分移到了CustomBarController之外,从而解决了该问题。这个答案是非常特定于我的项目的,只是分享了它,以使读者知道它是以不同的方式修复的。