如何让navgationBar再次隐藏?

时间:2017-07-25 08:36:16

标签: ios objective-c uinavigationcontroller

我正在开发一个面临一些困难的应用程序,在搜索了很多解决方案之后,但仍然无法正常工作。

首先,我创建一个像这样的应用程序

nav bar hidden

我使用以下代码隐藏navgationBar方法

中的viewWillAppear:
[self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                                              forBarMetrics:UIBarMetricsDefault];
self.navigationController.navigationBar.shadowImage = [UIImage new];
self.navigationController.navigationBar.translucent = YES;
self.navigationController.view.backgroundColor = [UIColor clearColor];
self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];

但是在使用UIImagePickerController拍摄照片后,屏幕上会显示navgationBar

像这样: nav bar appear

那么,我怎样才能使导航栏始终隐藏?非常感谢..

===============更新=============

我还使用UIImagePickerController从库中选择照片,虽然效果很好。在我选择并返回此viewController后,该栏仍然隐藏。真的很奇怪。

2 个答案:

答案 0 :(得分:0)

如何从界面构建器中将视图控制器嵌入到导航控制器中。然后创建一个新的Navigation Controller文件,并将界面构建器中的Navigation Controller分配给这个新类。

在这个类中,只需将栏设置为隐藏,由于您的初始视图控制器将嵌入其中,因此它应始终保持隐藏状态。

答案 1 :(得分:0)

如果要在选择图像后返回viewController,请隐藏导航栏使用此两个回调方法

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
   //Your code....
   [self.navigationController.navigationBar setHidden:YES];
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
   //Your code....
   [self.navigationController.navigationBar setHidden:YES];
}

但是如果你想从你的UIImagePickerViewController中删除导航栏,那么你应该将UIImagePickerViewController和你的自定义UIImagePicker子类化为这样的

的.h

#import <UIKit/UIKit.h>

@interface CustomImagePickerController : UIImagePickerController

@end

的.m

#import "CustomImagePickerController.h"

@interface CustomImagePickerController ()

@end

@implementation CustomImagePickerController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    [self.navigationController.navigationBar setHidden:YES];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

然后将此类用作UIImagePickerController

希望这有帮助