0

我正在尝试制作具有 2 个视图的 iOS 应用程序。第一个视图包含两个按钮:相机和库。当我选择图书馆时,我访问相机胶卷。我想选择一张照片并在另一个视图中打开它。直到现在我写这个函数

-(IBAction) getPhoto:(id) sender {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhotoBtn) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self presentViewController:picker animated:YES completion:nil];

}   


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissViewControllerAnimated:YES completion: Nil];
    imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
}

女巫在同一视图中打开我的图像。如何在另一个视图中打开此图像?

4

3 回答 3

1

你可以做这样的事情

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [picker dismissViewControllerAnimated:YES completion:^{
        YourSeconViewController *svc = [[UIViewController alloc] initWithNibName:@"YourSeconViewController" bundle:nil];
        svc.imageView.Image = image;
        [self presentViewController:svc animated:YES completion:nil];
    }];
}
于 2013-01-25T14:56:15.697 回答
0

我建议的步骤是:

  1. 确保您声明了一个视图控制器子类,最好使用 xib 文件,并确保其中包含图像视图;
  2. 如果您不使用任何导航控制器,请创建一个并使其成为窗口的根视图控制器;
  3. 推送一个视图控制器并将其图像视图的图像设置为您要设置的图像。
于 2013-01-25T14:51:26.007 回答
0

在同一个视图控制器的另一个视图中显示图像非常简单 - 假设您在 viewController 中引用了新视图,只需使用它:

 NewImageView.image = ...    

我假设您的意思是要将图像传递给另一个视图控制器

为此,您应该从您的imagePickerController:didFinishPickingMediaWithInfo:方法启动到新 viewController 的转换。

在您的新视图控制器中,您应该声明一个可以设置的公共属性:

@property (monatomic, strong) UIImage* Image;

您可以在转换到新视图控制器之前在新视图控制器上设置该属性,并在新视图控制器的 viewWillAppear 中使用该属性来设置 imageView 的内容。

您如何进行转换取决于您的应用程序的设计。例如,您可以使用 Segue,在这种情况下,您可以启动 seguedidFinishPickingMediaWithInfo:并将新视图控制器的属性设置为prepareForSegue. 或者您可以直接创建新的 VC:

  MyCustomViewController* viewController = [[MyCustomViewController alloc] init];

   //pass the image ref to the new view controller here
  ViewController.image = image;

   //modally present, no navController
  [self presentViewController:viewController animated:YES];

   //alternatively, push via a nav controller
  [self.navigationController pushViewController:viewController animated:YES];
于 2013-01-25T15:19:16.843 回答