更改UIImagePickerController导航栏的背景图像

时间:2014-01-18 00:41:14

标签: ios uinavigationbar uiimagepickercontroller

UIImagePickerController,以弹出窗口显示,不会更改navigationBar背景图像。

我只需按一下按钮即可调用此代码:

    picker = [[UIImagePickerController alloc] init];
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];

    popover = [[UIPopoverController alloc]initWithContentViewController:picker];
    [popover presentPopoverFromRect:self.holderRect inView:self.container permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

我还有以下实现:

 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if ([navigationController isKindOfClass:[UIImagePickerController class]])
    {
        UIImage* navBarImage = [UIImage imageNamed:@"imagePickerNav2.png"];
        [navigationController.navigationBar setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];
    }   
}

正如您所料,选择器的navigationBar图像应更改为navBarImage。这确实不会发生。弹出窗口中显示的第一个视图显示设备上所有图像和视频的缩略图。 导航栏仍然具有标准的ios7背景。当我选择视频时,弹出窗口中会显示另一个视图/ VC。此VC的左后卫按钮显示相机胶卷,标题为:选择视频和一个按钮:使用。这里的导航栏确实有navBarImage作为导航栏的bgimage。当我点击后面的相机胶卷按钮时,会弹出此VC,然后弹出框会显示原始VC,其中包含设备上图像和视频的缩略图。除此之外,导航栏背景更改为navBarImage。

以下是我尝试过但没有帮助的内容:

  • 在呈现之前/之后设置popover.contentViewController的navbar bg图像。
  • 在弹出窗口之前/之后设置选择器的导航栏bg图像。
  • 在setBackGroundImage方法中更改forBarMetrics
  • 中尝试上述内容
    - (void)navigationController:(UINavigationController *)navigationController **did**ShowViewController:(UIViewController *)viewController animated:(BOOL)animated
    

0 个答案:

没有答案