[英]Segue between view controllers not functioning
我有一個允許用戶拍照的應用程序,在拍照后(按一下操作)然后應導航到另一個視圖控制器,以允許用戶丟棄,編輯或保存照片。 我嘗試從didFinishPickingMediaWithInfo方法的相機視圖控制器中選擇,如下所示:
- (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info {
NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
UIImage *originalImage, *editedImage, *imageToSave;
// Handle a still image capture
if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo) {
editedImage = (UIImage *) [info objectForKey:
UIImagePickerControllerEditedImage];
originalImage = (UIImage *) [info objectForKey:
UIImagePickerControllerOriginalImage];
if (editedImage) {
imageToSave = editedImage;
} else {
imageToSave = originalImage;
}
// Save the new image to camera roll (will change later)
UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
[self.capturedImages addObject: imageToSave];
_imageView.image = [self imageToSave:imageToSave];
}
CaptureViewController *capture = [[CaptureViewController alloc] init];
[self performSegueWithIdentifier:@"takePic" sender:self];
}
當按下按鈕時,將調用didFinishPickingMediaWithInfo方法,提示[_picker takePicture];
這是我的准備方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller
//this is just a temporary fix
if ([segue.identifier isEqualToString:@"takePic"]) {
CaptureViewController *destViewController = segue.destinationViewController;
}
}
segue標識符是“ takePic”,所以這不是問題。 那太簡單了。 當我嘗試執行Segue時,什么也沒發生。 相機仍然顯示,並且我在imagePickerController's
cameraOverlayView
中擁有的兩個按鈕仍然存在(盡管它們不起作用)。 非常感謝幫助!
我看不到您要解雇圖像選擇器控制器的位置。 UIImagePickerController
對如何顯示它非常挑剔 。 因此,請確保以預期的方式呈現它。 捕獲或選擇圖像后,還需要關閉圖像選擇器控制器。 由於您看不到它消失,因此我強烈懷疑您沒有在任何地方解散它。
添加如下一行:
[picker dismissViewControllerAnimated:YES completion:nil];
到您的... didFinishPickingMediaWithInfo:
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.