2012-03-02 68 views
0

iPhone n00b在这里,虽然我确实在商店有一个应用程序。设置来自ViewController的UIImageView图像

我有两个简单的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)

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

回答

3

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

如果您传递的是正确的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文件,这样你没有得到任何警告。我认为这就是答案,但如果这仍然不能解决您的问题,请提供更多信息。

+0

更新,谢谢。 – 2012-03-04 22:38:40

+0

你试过了吗[[editImageView setImage:img];'而不是? – 2012-03-06 03:37:43

+0

是的,它没有效果。如果我把代码'[editImageView setImage:[UIImage imagenamed:@“test.png”]];'放入FlipsideViewController的' - (void)viewDidLoad'方法中,image _will_会加载。然而这提出了另一个问题,因为我无法从FlipsideViewController的viewDidLoad方法访问MainViewController的img属性。的Bleh! – 2012-03-06 04:09:17

1

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

出现U缺少..

而在第二种情况下。看起来你已经连接imageView.xib,但没有property.Try使用它没有自我。或者在属性中声明IBOutlet

0

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

0

当您将UIImage传递给您的方法(selectImage:)然后无需通过imageNamed:方法设置imageView (UIImageView)。 因为您在img实例中有UIImage,所以您可以在该函数内设置imageimg

如果您传递的是正确的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); 
} 

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

+0

谢谢,但我的问题不是显示错误的图像,而是显示图像。我没有说清楚,并改变了我的问题以反映这一点。 – 2012-03-04 22:38:27

+0

@stevesullivan NP,当您调用该方法时,您需要将'Image'传递给该方法('selectImage')作为'[self selectImage:[UIImage imageNamed:@“myImage.png”]];' – Kamarshad 2012-03-05 07:33:52

+0

是的,我意识到这一点,并且第一条NSLog语句打印正确的事实证实了这一点。我知道img正在被正确传递。麻烦的是[self.editImageView setImage:img];似乎没有任何效果,即NSLog(@“%@”,self.editImageView.image);返回(null)。 – 2012-03-05 22:18:16

相关问题