5

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

非常感谢您的帮助!

4

2 回答 2

4

这里

self.imageView = [[UIImageView alloc] initWithImage:_dataObject];

您正在创建一个新的 UIImageView,它悬空未使用、不可见且没有父级。您需要以某种方式设置它的大小并将其放入父视图中

[<parent> addSubview:self.imageView]

展示它。

如果您的原始 UIImageView 是从资源文件中读取的(我假设是因为它是 IBOutlet ),只需执行

self.imageView.image = _dataObject

而这应该做的工作。

于 2012-04-24T14:34:34.860 回答
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。

于 2012-05-14T10:39:09.787 回答