iOS 2不同导航条图像
我已使用以下代码替换了Xcode 5中iOS7应用程序中的导航栏(如果有必要,还删除了状态栏): AppDelegate.MiOS 2不同导航条图像,ios,uiimagepickercontroller,Ios,Uiimagepickercontroller,我已使用以下代码替换了Xcode 5中iOS7应用程序中的导航栏(如果有必要,还删除了状态栏): AppDelegate.M [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault]; 在我的一个图像视图控制器中,我使用一个UIImagePicker来拾取一个剖面图。问题是,当它进入照片库时,它使用了主“导航栏”图像,该图像
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];
在我的一个图像视图控制器中,我使用一个UIImagePicker来拾取一个剖面图。问题是,当它进入照片库时,它使用了主“导航栏”图像,该图像隐藏了一些控件,并且基本上在顶部堆叠了2个相同的导航栏。我可以为照片库换一个导航条吗?以下是视图控制器:
第一视图
#import <UIKit/UIKit.h>
@interface IBFirstViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@property (weak, nonatomic) IBOutlet UILabel *userName;
@property (weak, nonatomic) IBOutlet UILabel *userEmail;
@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage;
- (IBAction)logout:(id)sender;
- (IBAction)edit:(id)sender;
在iOS7上使用
[UINavigationBar外观]
自定义导航栏时,我遇到了类似的问题。如果我们这样做,作为UINavigationController
子类的所有iOS本机控制器也会受到影响,例如:UIImagePickerController、MFMessageComposeViewController
如果要在控制器中使用自定义导航样式,则必须应用UINavigationController
实例,而不是使用[UINavigationBar外观]
singleton
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
UINavigationController *navigationController = (UINavigationController*)self.window.rootViewController;
[navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];
...
}
或者在我的例子中,我创建UINavigationController的子类
- (void)viewDidLoad
{
[super viewDidLoad];
[self setupAppearance];
...
}
- (void)setupAppearance
{
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBar"]
}
然后,在创建UIImagePickerController实例时,只需自定义其导航栏
- (IBAction)edit:(id)sender {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.delegate = self;
// Custom another navigation style
[imagePickerController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NEW-NAV-BAR-IMAGE"];
[self presentViewController:imagePickerController animated:NO completion:Nil];
}
- (IBAction)edit:(id)sender {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.delegate = self;
// Custom another navigation style
[imagePickerController.navigationBar setBackgroundImage:[UIImage imageNamed:@"NEW-NAV-BAR-IMAGE"];
[self presentViewController:imagePickerController animated:NO completion:Nil];
}