Проблема с NavigationBar и UIImagePickerController - PullRequest
1 голос
/ 16 декабря 2010

в моем приложении делегат У меня это:

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect
{
UIImage *image = [UIImage imageNamed: @"HeaderViewBG.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end

для установки фонового изображения для панели навигации. Но мне нужно использовать UIImagePickerController, поэтому у меня есть этот код:

 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 1) {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.allowsEditing = YES;
    picker.navigationBar.barStyle = UIBarStyleDefault;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:picker animated:YES];
        [picker release];
    }
}

Результат:

alt text

Я хочу использовать стиль панели навигации UIImagePickerController по умолчанию. Я не хочу, чтобы фоновое изображение использовалось в приложении, я хочу панель навигации по умолчанию.

Как я могу это исправить?

Очень спасибо.

Ответы [ 2 ]

0 голосов
/ 07 июля 2015
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    if ([navigationController isKindOfClass:[UIImagePickerController class]]) {
        if ([[UIDevice currentDevice] systemVersion].floatValue >= 8.0) {
            [viewController.navigationController.navigationBar setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbar1"]]];
        } else {
            [viewController.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar2"] forBarMetrics:UIBarMetricsDefault];
        }
    viewController.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 40)];
    titleLabel.textColor = [UIColor whiteColor];
    titleLabel.textAlignment = NSTextAlignmentCenter;
    titleLabel.font = [UIFont boldSystemFontOfSize:18.0f];
    titleLabel.text = @"photos";
    [viewController.navigationItem setTitleView:titleLabel];
    viewController.edgesForExtendedLayout = UIRectEdgeNone;
    }
}
0 голосов
/ 16 декабря 2010

удалить код для панели навигации и удалить оператор, где вы вызываете drawRect эту функцию.

удаляет пользовательскую панель навигации, а затем вы получаете панель навигации по умолчанию.

...