我创建了一个名为 MyPLayer 的 Cocoa Touch 类
我的播放器.h
@interface MyPLayer : NSObject<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
在里面我创建了一个选择器视图。
我的播放器.m
@implementation MyPLayer
SINGLETON_GCD(MyPLayer);
在开始视频捕获的方法中:
+ (void)startCaptureVideoFromViewController:(UIViewController *)controller videoUploadProgressionHandler:(VideoUploadProgressionBlock)videoUploadProgressionBlock videoSavedHandler:(VideoSavedBlock)videoSavedBlock videoCanceledHandler:(VideoWasCanceledBlock)videoCanceledBlock captureFailedHandler:(FailDetailsBlock)failBlock {
id <UIImagePickerControllerDelegate, UINavigationControllerDelegate> delegate = [MyPlayer sharedInstance];
在我的库中的 UIPickerViewController 中,我设置了委托
picker.delegate = delegate;
在定义了 picker.mediaTypes 和 picker.cameraDevice 之后,我创建了一个 UIToolbar,并在里面创建了一个按钮。
UIToolbar *toolBar=[[UIToolbar alloc] initWithFrame:CGRectMake(0, [dadosUsuario doubleForKey:@"toolBarHeigh"]-54, [dadosUsuario doubleForKey:@"toolBarWidth"], 55)];
toolBar.barStyle = UIBarStyleBlackOpaque;
NSArray *items=[NSArray arrayWithObjects:
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shootVideo)],
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
nil];
[toolBar setItems:items];
在我的 UIViewController 上,我调用 MyPlayer,调用显示 UIPickerView 的方法。覆盖出现,按钮也出现。但是我在哪里可以创建方法来匹配 UIToolbar 上的@selector?
所有 UIPicker Delegate 方法都在 MyPLayer 中,但我无法触发 UIBarItem。我认为这是因为代表或其他原因。
当我在常规 UIViewController 中声明所有这些代码(选择器视图、uibaritem 和选择器方法)时,它工作正常。