iphone - 从 ViewController 设置 UIImageView 图像

标签 iphone objective-c ios xcode uiimageview

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

我有两个简单的 ViewController,直接取自 xCode 中的 Utility Application 模板。我有两个 UIImageViews,一个在 Storyboard中的每个 ViewController 上。我已经正确连接了 socket (据我所知),因为我可以使用

设置 first ViewController 的图像

[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/

相关文章:

iphone - Mach API 是否公开可用于 iOS 应用程序?

ios - 协议(protocol)类别和传递信息

ios - 如何将持有 int 的 iOS id 类型转换为 NSString?

ios - 已解决 - 如何在 SceneKit 中使用 "HEVC with Alpha channel"视频?

ios - 循环中的 NSLayoutConstraint FOR

iphone - 从另一个 ViewController 调用方法

ios - 如何仅在几个部分以编程方式更改 UIImage 的色调?

ios - UITextDropDelegate willPerformDrop 没有被调用

iphone - 核心数据保存崩溃

ios - 初始化后不显示带有 Nib 的 UITableViewCell