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

有帮助吗?

解决方案

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

- (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];
}

其他提示

以下是 Swift 3

中的操作方法
override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

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

适用于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];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top