我将数据从一个控制器传递到另一个控制器。
发送数据的 TemplateController
如下所示:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
PreviewController *destViewController = [[PreviewController alloc]init];
destViewController.passFrameLabel = [self.frameImages[indexPath.section] objectAtIndex:indexPath.row];
[self.collectionView deselectItemAtIndexPath:indexPath animated:NO];
[destViewController loadFrame];
[self dismissViewControllerAnimated:YES completion:nil];
}
我的loadFrame
中的PreviewController
方法如下所示:
UIImageView *frameImageView = [[UIImageView alloc] init];
[self.view addSubview:frameImageView];
self.frameImageView.image = [UIImage imageNamed:self.passFrameLabel];
调试后,self.passFrameLabel包含正确的值,但self.frameImageView.image
返回nil
。我错过了什么?
答案 0 :(得分:5)
当您的类还具有frameImageView
属性时,您似乎正在创建frameImageView
本地对象。您正在添加UIImageView
的本地对象作为子视图,但将image
分配给属性(似乎未初始化)。
你应该修改你的代码,
//frameImageView should be a strong property
_frameImageView = [[UIImageView alloc] init];
self.frameImageView.frame = CGRectMake(10,10,50,50); //Add suitable frame
//Now assign image
self.frameImageView.image = [UIImage imageNamed:self.passFrameLabel];
//Add this property as subview
[self.view addSubview:self.frameImageView];
尝试一下。
答案 1 :(得分:0)
首先 - 项目中是否存在该文件名的图像,是否已将其复制到目标包中?