我正在开发一个面临一些困难的应用程序,在搜索了很多解决方案之后,但仍然无法正常工作。
首先,我创建一个像这样的应用程序
我使用以下代码隐藏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
,
那么,我怎样才能使导航栏始终隐藏?非常感谢..
===============更新=============
我还使用UIImagePickerController从库中选择照片,虽然效果很好。在我选择并返回此viewController后,该栏仍然隐藏。真的很奇怪。
答案 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子类化为这样的
#import <UIKit/UIKit.h>
@interface CustomImagePickerController : UIImagePickerController
@end
#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
希望这有帮助