无法从另一个视图控制器设置UIImageView图像

时间:2014-12-30 06:59:30

标签: ios objective-c uiimageview uiimage

第一个视图控制器调用此方法发送图像

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

...
[wallPostCreateViewController viewDidLoad];

  [wallPostCreateViewController selectImage:wallPostCreateViewController.myImage];

NSLog(@"FROM PAWWallViewController %@",wallPostCreateViewController.myImage); //Image is there


}

我在第二个视图控制器中收到图像,但无法将图像放入其UIImageView中。

- (void)selectImage:(UIImage *)img
{

if (self.condition)
{
    NSLog(@"View loaded!"); //is loaded
    [self selectImageNow:img];
    self.condition = NO;
}
else
    NSLog(@"View did NOT load!");


}
- (void)selectImageNow: (UIImage *)img
{

    NSLog(@"Image passed  %@", img); // This is the UIImage being passed.

    self.imageView = [[UIImageView alloc] initWithImage:img];
    self.imageView.image = img;

    NSLog(@"Image in view  %@", self.imageView.image); //has value
    NSLog(@"Imageview  %@", self.imageView); //has value


 }

更新:

以上代码现已更新。现在所有日志都有值,但我在运行应用程序时仍然看不到图像或图像视图

3 个答案:

答案 0 :(得分:0)

UIImage object从一个发送到另一个ViewController,然后将UIImage分配到UIImageViewViewWillAppear ViewDidLoad方法SecondController }。

答案 1 :(得分:0)

问题似乎是你的imgView是零。因此,请确保在加载视图之前不应调用方法。

答案 2 :(得分:0)

我认为你需要在第二个视图控制器中的prepareForSegue方法中设置第一个视图控制器的imageView,在那里你将你的目标作为第一个视图控制器,在第二个视图控制器中做这样的事情: / p>

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if([segue.identifier isEqualToString:@"firstVwCtrl"]){

    FirstViewController *frstVwCtrl = [segue destinationViewController];
    [frstVwCtrl setImgGot:_photoView.image];

          }  }