从ViewController设置UIImageView图像

时间:2012-03-02 04:17:59

标签: iphone objective-c ios xcode uiimageview

iPhone n00b在这里,虽然我在商店里有一个应用程序。

我有两个简单的ViewControllers,直接来自xCode中的Utility Application模板。我有两个UIImageViews,一个在故事板中的每个ViewController上。我有正确连接的插座(据我所知),因为我可以设置第一个 ViewController的图像与

[self.imageView setImage:@"test.png"]

当我尝试在我的FlipsideViewController中做同样的事情时,没有任何事情发生。

- (void)selectImage:(UIImage *)img
{
    NSLog(@"%@", img);
    self.editImageView.image = img;
    NSLog(@"%@", self.editImageView.image);
}

此代码在记录第一个NSLog语句后给出正确的结果,但第二行没有达到预期效果,第三行产生(null)

编辑:更新了男女同校以反映我想要显示“img”而不是使用imageNamed初始化的另一个图像的事实,这只是一个测试。

4 个答案:

答案 0 :(得分:3)

如果您将UIImage传递给您的方法,那么为什么要通过imageView函数设置imageNamed:

如果您传递了正确的UIImage,那么您应该执行以下操作。

- (void)selectImage:(UIImage *)img
{
    NSLog(@"%@", img); // This is the UIImage being passed.
    [self.editImageView setImage:img];
    NSLog(@"%@", self.editImageView.image);
}

从我所看到的就是所需要的一切。如果这是错误的,请更新您的问题,以便我可以相应地回答。

由于评论而被编辑

所以,从我收集的评论中我知道了这个问题。

您说在-(void)viewDidLoad中,您可以使用[UIImage imageNamed:]方法设置图片,这很简单。这很好,但你想用一个导致问题的单独方法来做。

我建议做以下事情,以测试清醒。

 - (void)viewDidLoad
 {
      [super viewDidLoad];
      // Do any additional setup after loading the view from its nib.

      UIImage *imageYouWantToPass = [UIImage imageNamed:@"test.png"];
      [self selectImage:imageYouWantToPass];

 }

确保将selectImage:方法添加到.h文件中,这样就不会收到任何警告。我认为这就是答案,但如果仍然无法解决您的问题,请提供更多信息。

答案 1 :(得分:1)

[self.imageView setImage:[UIImage imagenamed:@"test.png"]]

你错过了..

在第二种情况下。您似乎已将imageView连接到.xib但未连接属性。尝试使用它而不使用自己。或者在属性

中声明IBOutlet

答案 2 :(得分:0)

检查editImageView是否正确初始化。第一个NSLog工作正常意味着你有正确的图像,第二个NSLog不起作用意味着editImageView可能存在问题。

答案 3 :(得分:0)

当您将UIImage传递给您的方法(selectImage:)时,无需通过imageView (UIImageView)方法设置imageNamed:。 由于UIImage个实例中有img,因此您只需在函数中设置image img即可。

如果您传递了正确的UIImage,那么您应该执行以下操作。

- (void)selectImage:(UIImage *)img
{   
     NSLog(@"%@", img); // here you have Image in img, so just set Image From this img.

     [self.editImageView setImage:img];
     NSLog(@"%@", self.editImageView.image);
}

我希望它清除一切...... !!!!