我有两个UIViewControllers。在firstViewController中,有一个按钮,按钮动作是
SecondViewController *controller = [[SecondViewController alloc]init];
UIImage *image1 = [UIImage imageNamed:@"a.jpg"];
controller.imageView.image = image1;
[self presentModalViewController:controller animated:YES];
单击按钮时,会出现SecondViewController的视图,但是imageview的图像没有变为“a.jpg”。我需要帮助,谢谢。
答案 0 :(得分:1)
SecondViewController *controller = [[SecondViewController alloc]
initWithAnImageNamed:@"a.jpg"];
[self presentModalViewController:controller animated:YES];
-(id)initWithAnImageNamed:(NSString*)anImage
{
self.imageView.image = [UIImage imageNamed: anImage];
return self;
}
旁注:a.jpg
应包含在捆绑包中。
答案 1 :(得分:1)
而不是将UIImage发送到secondViewController,您可以发送字符串“a.jpg”,并在seconviewController的viewDidLoad中实现代码
imageView.image = [UIImage imageNamed:imageName];
答案 2 :(得分:1)
我认为你不是为UIImageView
分配初始化SecondViewController
对象。
添加
controller.imageView = [[UIImageView alloc] init];
还要确保项目文件夹中有a.jpg。
答案 3 :(得分:1)
视图控制器在需要之前不会加载其视图。当您访问其imageView
属性时,如果在加载视图之前调用它,则会返回nil
。您可以通过显式调用-view
:
[controller view];
这是一个kludge,但它的确有效。
答案 4 :(得分:0)
我已经解决了这个问题。我将图像设置为属性而不是将imageview设置为属性。我在firstViewController中设置secondViewController的图像,如下所示:
SecondViewController *controller = [[SecondViewController alloc]init];
UIImage *image1 = [UIImage imageNamed:@"a.jpg"];
controller.image = image1;
[self presentModalViewController:controller animated:YES];
然后在secondViewController的viewDidLoad方法中设置imageView。