在呈现视图之前,如何设置UIImageView的图像?

时间:2011-02-04 18:57:48

标签: iphone uiview uiimageview modalviewcontroller

我有一个正在处理的应用程序,并且为了节省我制作的视图,我希望能够动态地将视图传递给图像。例如,我提出了一个观点:

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];

然后我想在我呈现之前设置视图的imageview显示的图像:

UIImage *image = [UIImage imageNamed: @"IMG_5010_2.jpg"];
[controller.imageView setImage:image];
[controller.label setText:@"HI"];//I am trying to do this too and it isn't working...

但它只是不起作用!!有没有人对此有任何想法?请帮忙!!

由于

注意:我在我试图呈现的视图上设置了UIImageView和UILabel属性...

3 个答案:

答案 0 :(得分:4)

您应该在相关UIViewController的viewDidLoad方法中设置图像,因为在初始阶段视图将不存在,并且将在viewDidAppear被调用时显示。

答案 1 :(得分:1)

也许你可以试试这个: 向FlipsideViewController添加两个新属性:

@property (retain) UIImage *image;
@property (copy) NSString *labelText;

不要忘记在FlipsideViewController.m中合成它们。 然后,当您实例化FlipsideViewController时:

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
UIImage *image = [UIImage imageNamed: @"IMG_5010_2.jpg"];
controller.image = image;
controller.labelText = @"Hi";

然后在您的FlipsideViewController viewDidLoad方法中,您可以将属性中的值分配给视图IBOutlets:

- (void)viewDidLoad {
    //do other stuff
    [self.imageView setImage:self.image];
    [self.label setText:self.labelText];
    //any other stuff
}

答案 2 :(得分:0)

当然你已经在nib文件中正确连接了IBOutlets吗?

假设您已将此代码放在视图控制器中的正确位置,这应该可以正常工作。所以,要么你不在这个代码运行的地方,要么你正在配置的东西没有挂钩到nib中的任何对象。它必须是这两件事之一。