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
初始化的另一个图像的事实,这只是一个测试。
答案 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);
}
我希望它清除一切...... !!!!