Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 当我从导航控制器按下时,如何隐藏导航栏?_Iphone_Objective C_Uinavigationcontroller_Uinavigationbar - Fatal编程技术网

Iphone 当我从导航控制器按下时,如何隐藏导航栏?

Iphone 当我从导航控制器按下时,如何隐藏导航栏?,iphone,objective-c,uinavigationcontroller,uinavigationbar,Iphone,Objective C,Uinavigationcontroller,Uinavigationbar,当我使用从导航控制器中按时,如何在UIViewcontroller中隐藏顶部栏 推视图控制器? 有什么帮助吗?将此代码放入要隐藏导航栏的视图控制器中 - (void) viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:YES animated:animated]; } 根据您的需要,您可能还希望将其固

当我使用从导航控制器中按时,如何在UIViewcontroller中隐藏顶部栏 推视图控制器
有什么帮助吗?

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

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

以下是如何在Swift 3中执行此操作:

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

另外,我发现如果将动画设置为
false
,推送时会出现一个黑色条。但是当它被设置为
true
时,它就像丝绸一样光滑

我想补充一个问题,当用户点击它所在的位置时,如何使它隐藏/显示。Ie:就像在照片应用程序中一样。当你需要隐藏导航栏时,你只需将setNavigationBarHidden调用放在你喜欢的任何地方。@Ed Marty我们可以在故事板中隐藏导航栏吗?谢谢!方法hidesBottomBarWhenPushed()也很有用