自定义MPMediaPickerController

需要对MPMediaPickerController视图做一些颜色的修改。

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = YES; // this is the default
[self presentViewController:mediaPicker animated:YES completion:nil];
[mediaPicker release];

如果你想要更改MPMediaPickerController的外观,你可以使用以下方法:

  • 创建一个新的类,继承自MPMediaPickerController。

  • 重写MPMediaPickerController的 viewDidLoad 方法。

  • 在viewDidLoad方法中,访问self.navigationController.navigationBar并修改它的外观。例如,你可以使用self.navigationController.navigationBar.barTintColor来设置导航栏的背景色。

  • 创建一个新的MPMediaPickerController的实例,并将其赋值给你创建的自定义类的实例。

  • 将你的自定义MPMediaPickerController的实例显示出来。

这样你就可以使用你自定义的MPMediaPickerController了。

代码示例:

// MyMediaPickerController.h
#import <MediaPlayer/MediaPlayer.h>

@interface MyMediaPickerController : MPMediaPickerController

@end

// MyMediaPickerController.m
#import "MyMediaPickerController.h"

@implementation MyMediaPickerController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationController.navigationBar.barTintColor = [UIColor redColor];
}

@end

// 在你的代码中使用MyMediaPickerController
MyMediaPickerController *mediaPicker = [[MyMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = YES; // this is the default
[self presentViewController:mediaPicker animated:YES completion:nil];
[mediaPicker release];