我从Apple提供的标准基于PageView的应用程序模板开始。现在,我希望应用程序中的页面显示图像,而不是文本。数组创建如下:
_pageData = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
nil];
此数组按以下方式处理:
DataViewController *dataViewController = [storyboard instantiateViewControllerWithIdentifier:@"DataViewController"];
dataViewController.dataObject = [self.pageData objectAtIndex:index];
return dataViewController;
然后,在DataViewController.h中:
@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@property (strong, nonatomic) UIImage *dataObject;
在DataViewController.m中,我试图以下列方式在de imageView中显示图像:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.imageView = [[UIImageView alloc] initWithImage:_dataObject];
NSLog(@"dataObject %@", _dataObject);
}
但是,使用此代码,我没有成功将图像放到PageViewController上。知道我怎么能让它正常工作吗?
非常感谢你的帮助!
答案 0 :(得分:4)
这里
self.imageView = [[UIImageView alloc] initWithImage:_dataObject];
你正在创建一个新的UIImageView,悬挂未使用,不可见且没有父级。 您需要以某种方式设置它的大小并将其放在带有
的父视图中[<parent> addSubview:self.imageView]
显示它。
如果从资源文件中读取原始UIImageView(我假设是因为它是IBOutlet), 只是做一个
self.imageView.image = _dataObject
这应该可以胜任。
答案 1 :(得分:2)
这对我有用
NSArray *anArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"transparente.png"],
[UIImage imageNamed:@"21001.jpg"],
[UIImage imageNamed:@"21002.jpg"],
[UIImage imageNamed:@"21003.jpg"],
[UIImage imageNamed:@"21004.jpg"],
[UIImage imageNamed:@"transparente2.png"],
nil];
_pageData = [anArray copy];
和dataViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.pageImage.image = self.dataObject;
}
pageImage是一个带有IBOutlet的UIImageView。