这里是 iPhone n00b,虽然我在商店里有一个应用程序。
我有两个简单的 ViewController,直接取自 xCode 中的 Utility Application 模板。我有两个 UIImageViews
,一个在 Storyboard中的每个 ViewController 上。我已经正确连接了 socket (据我所知),因为我可以使用
[self.imageView setImage:@"test.png"]
当我尝试在我的 FlipsideViewController
中做基本相同的事情时,没有任何反应。
- (void)selectImage:(UIImage *)img
{
NSLog(@"%@", img);
self.editImageView.image = img;
NSLog(@"%@", self.editImageView.image);
}
这段代码,在记录第一个 NSLog
语句后给出了正确的结果,但是第二行没有达到预期的效果,第三行产生了 (null)
.
编辑:coed 已更新以反射(reflect)我想显示“img”而不是使用 imageNamed
初始化的另一个图像这一事实,这只是一个测试。
最佳答案
如果您将 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
文件中,这样您就不会收到任何警告。我认为这就是答案,但如果这仍然不能解决您的问题,请提供更多信息。
关于iphone - 从 ViewController 设置 UIImageView 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9527905/