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。
以下是我尝试过但没有帮助的内容:
在
中尝试上述内容- (void)navigationController:(UINavigationController *)navigationController **did**ShowViewController:(UIViewController *)viewController animated:(BOOL)animated