首页 文章

我从导航控制器推出时如何隐藏导航栏?

提问于
浏览
37

当我使用 pushViewController 从导航控制器推送时,如何隐藏 UIViewcontroller 中的顶栏?有什么帮助吗?

3 回答

  • 6

    将此代码放在要隐藏导航栏的视图控制器中 .

    - (void) viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        [self.navigationController setNavigationBarHidden:YES animated:animated];
    }
    

    您可能还想根据自己的需要坚持下去:

    - (void) viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [self.navigationController setNavigationBarHidden:NO animated:animated];
    }
    
  • 102

    以下是 Swift 3 中的操作方法:

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationController?.setNavigationBarHidden(true, animated: animated)
    }
    

    附:我发现如果你将动画设置为 false ,推出时会出现一个黑条 . 但是当它设置为 true 时它就像丝绸一样光滑!

  • 0

    对于iOS 8,可能这个工作可以解决它

    CATransition* transition = [CATransition animation];
            transition.duration = 0.3;
            transition.type = kCATransitionPush;
            transition.subtype = kCATransitionFromRight;
            [self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
            [self.navigationController setNavigationBarHidden:TRUE animated:FALSE];
            [self.navigationController pushViewController:productViewObj animated:FALSE];
            [productViewObj.navigationController setNavigationBarHidden:TRUE animated:FALSE];
            [productViewObj release];
    

相关问题