setNavigationBarHidden无法在其他类中工作(Swift 3.0)

时间:2016-11-17 02:20:31

标签: ios swift xcode uinavigationcontroller

我希望在将内容滚动到顶部时显示导航栏。

我可以隐藏/显示ViewController的导航,但是当我从UIcollectionView类调用时,“setNavigationBarHidden”无效。

我在ViewController上有水平UIcollectionView的垂直UIcollectionView。现在我从垂直方向调用hideBar(),因为我的VC具有水平UIcollectionView:

我调用的方法如下所示: -

FeedCell.swift (垂直UICollectionView) enter image description here

HomeController.swift (ViewController有两个UICollectionView) enter image description here

enter image description here

项目层次结构

enter image description here

看起来FeedCell.swift能够访问HomeController但是当我从FeedCell.swift调用时,navigationController?.setNavigationBarHidden无效。

非常感谢,如果有人能就此问题提出建议,谢谢!

1 个答案:

答案 0 :(得分:2)

注意:根据问题所有者与我之间的对话做出以下回答。

   func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

    if(velocity.y>0) {

     UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: { 
     self.navigationController?.setNavigationBarHidden(true, animated: true) 
     }, completion: nil)

     } else {
     UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: { 
     self.navigationController?.setNavigationBarHidden(false, animated: true)
     }, completion: nil)    
     }