當用戶登陸頁面時,我有一個UIImagePickerController類型的相機。我在UIImagePickerController之上放置了一個自定義攝像頭覆蓋圖,但沒有任何按鈕事件正在觸發。我知道大部分代碼都來自基本的Apple代碼,所以我對發生的事情感到困惑。UIImagePickerController Overlay Buttons Not Firing
@interface TakePhotoViewController : UIImagePickerController <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
...
- (void)showImagePickerForSourceType:(UIImagePickerControllerSourceType)sourceType
{
if (self.capturedImages.count > 0)
{
[self.capturedImages removeAllObjects];
}
self.sourceType = sourceType;
self.delegate = self;
if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
/*
The user wants to use the camera interface. Set up our custom overlay view for the camera.
*/
self.showsCameraControls = NO;
/*
Load the overlay view from the OverlayView nib file. Self is the File's Owner for the nib file, so the overlayView outlet is set to the main view in the nib. Pass that view to the image picker controller to use as its overlay view, and set self's reference to the view to nil.
*/
[[NSBundle mainBundle] loadNibNamed:@"CameraOverlay" owner:self options:nil];
float scale = [self getScaleForFullScreen];
self.cameraViewTransform = CGAffineTransformMakeScale(scale, scale);
self.overlayView.frame = self.cameraOverlayView.frame;
self.cameraOverlayView = self.overlayView;
self.overlayView = nil;
}
}
的CameraOverlay的所有者是TakePhotoViewController。 CameraOverlay內的一個按鈕將Touch Up Inside事件發送到下面列出的插座功能。附加到按鈕在TakePhotoViewController的代碼如下,其中無日誌擊發:
- (IBAction)outlet:(id)sender {
NSLog(@"outlet");
}
將按鈕掛鉤到此目標和此操作方法的代碼在哪裏? – matt
我有控制按鈕從CameraOverlay拖動到此操作方法。在插座方法的旁邊填入圓圈,它說「CameraOverlay.xib - 插座按鈕測試」 –
不過,我很懷疑。畢竟,你自己說過'outlet'方法沒有被觸發。我強烈建議你在代碼中形成這個動作連接 - 就在你說'self.cameraOverlayView = self.overlayView;'之後,在按鈕上調用'addTarget:action:forControlEvents:'來形成連接。 – matt