在UIImageView中获取图像数组(在UIPageViewController中)

时间:2012-04-24 13:55:41

标签: ios xcode uiimageview uipageviewcontroller

我从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上。知道我怎么能让它正常工作吗?

非常感谢你的帮助!

2 个答案:

答案 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。