-2

我创建了一个名为 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 和选择器方法)时,它工作正常。

4

1 回答 1

0

关注这个帖子

UIBarButtonItem:目标动作不起作用?

我发现工作的唯一方法是创建一个 UIButton,而不是 UIToolbar / UIBarButtonItem。

于 2016-03-13T18:39:56.787 回答