第一个视图控制器调用此方法发送图像
- (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
}
更新:
以上代码现已更新。现在所有日志都有值,但我在运行应用程序时仍然看不到图像或图像视图
答案 0 :(得分:0)
将UIImage object
从一个发送到另一个ViewController
,然后将UIImage
分配到UIImageView
或ViewWillAppear
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];
} }