我想将图像发送到下一个气味。但是失败。
这是我的代码
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"prepareForSegue start");
NSLog(@"count is %d",count);
//bigStyle1 is a NSArray,full of UIImage
//bigImage is a UIImageView outlet
if ([bigStyle1 objectAtIndex:count]==nil) {
NSLog(@"no array image");
}
viewController3.bigImage.image=[bigStyle1 objectAtIndex:count];
if (viewController3.bigImage.image==nil) {
NSLog(@"no controller image");
}
NSLog(@"secondToThird");
NSLog(@"prepareForSegue end");
}
这是Xcode的日志
2013-03-12 15:15:38.683 animation[1876:f803] prepareForSegue start
2013-03-12 15:15:50.825 animation[1876:f803] count is 0
2013-03-12 15:17:10.829 animation[1876:f803] no controller image
似乎问题出在图像分配上,为什么分配失败?
更新
viewController3不是nil。但是bigImage是nil。我不知道为什么。我实际上将bigImage连接到图像视图
最佳答案
我怀疑您打算viewController3
作为segue的目的地。在这种情况下,您应该这样设置:
viewController3 = segue.destinationViewController;
我进一步怀疑是
viewController3.bigImage
。如果是这样,您就会遇到问题,因为UIImageView
到系统发送viewController3
时尚未加载其视图层次结构,因此尚未设置prepareForSegue:sender:
。它为nil,并且在nil上设置属性不会执行任何操作(没有警告或错误消息)。最好直接给
viewController3.bigImage
一个viewController3
属性,然后将图像存储在该属性上。然后,在image
的viewController3
方法中,将图像从该属性复制到viewDidLoad
。另外,您可以通过强制
self.bigImage.image
将其视图加载到viewController3
中,而仅询问其视图即可:[viewController3 view]; // forces it to load its view hierarchy if necessary
viewController3.bigImage.image = [bigStyle1 objectAtIndex:count];
关于ios - prepareForSegue中的赋值为false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15355852/