如何使用instantiateViewControllerWithIdentifier从一个名为controller的视图控制器设置UIImageView?

时间:2012-07-25 05:43:53

标签: iphone objective-c xcode ios5

我正在使用故事板,我需要使用子视图来导入xib。 xib只是显示图像。它有一个UIImageView和一个UIBarButtonItem。将图像作为子视图导入后,如何设置图像?

我尝试在子视图xib的h + m文件中设置方法,但也许我做错了。这是我的代码

-(void)showPreviewImageScreen:(UIImage *)image 
{

    UIStoryboard*  sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"libraryImagePreview"];

    [vc setPreviewImage:image];

    [self.navigationController.view addSubview:vc.view];

}

我得到的错误说“UIViewController没有可见的@interface声明选择器'setPreviewImage'”

2 个答案:

答案 0 :(得分:0)

没有一种名为setPreviewImage的方法(据我所知)。使用setImage设置图像:但是必须在xib中的UIImageView上调用,而不是在视图控制器vc上调用。

答案 1 :(得分:0)

@rdelmar感谢您指出我正确的方向..这是我提出的解决方案.. 我用1标记UIimageView,然后循环遍历子视图以找到此标记并以这种方式定位。

-(void)showPreviewImageScreen:(UIImage *)image 
{

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"libraryImagePreview"];


    for (UIView *subview in vc.view.subviews)
    {
        if(subview.tag==1)
        {
            UIImageView *IV = subview;
            [IV setImage:image];
        }
    }

   [self.navigationController.view addSubview:vc.view];

}