2012-04-24 8 views
7

Empecé con la plantilla de aplicación basada en PageView estándar proporcionada por Apple. Ahora, en lugar de texto, quiero que las páginas de la aplicación muestren imágenes. Se creará una matriz de la siguiente manera:Obtener una matriz de imágenes en UIImageView (en UIPageViewController)

_pageData = [[NSArray alloc] initWithObjects: 
       [UIImage imageNamed:@"1.png"], 
       [UIImage imageNamed:@"2.png"], 
       [UIImage imageNamed:@"3.png"], 
       nil]; 

Esta matriz se maneja de la siguiente manera:

DataViewController *dataViewController = [storyboard instantiateViewControllerWithIdentifier:@"DataViewController"]; 
dataViewController.dataObject = [self.pageData objectAtIndex:index]; 
return dataViewController; 

Luego, en DataViewController.h:

@interface DataViewController : UIViewController 

@property (strong, nonatomic) IBOutlet UIImageView *imageView; 
@property (strong, nonatomic) UIImage *dataObject; 

Y en DataViewController.m I' Estoy tratando de mostrar las imágenes en de imageView de la siguiente manera:

- (void)viewWillAppear:(BOOL)animated 
    { 
    [super viewWillAppear:animated]; 

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

    NSLog(@"dataObject %@", _dataObject); 

    } 

Sin embargo, con este código no logro obtener las imágenes en PageViewController. ¿Alguna idea de cómo podría hacer que esto funcione correctamente?

¡Muchas gracias por su ayuda!

Respuesta

5

Aquí

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

va a crear un nuevo UIImageView que está colgando arround sin usar, invisible y sin un padre. Es necesario ajustar su tamaño y ponerlo de alguna manera a una vista padre con un

[<parent> addSubview:self.imageView] 

mostrarlo.

Si su UIImageView original se lee de un archivo de recursos (supongo que porque se trata de un IBOutlet), acaba de hacer una

self.imageView.image = _dataObject 

y esto debe hacer el trabajo en su lugar.

+0

Sí! Trabajos. Muchas gracias. – user1048042

+0

¿Qué variante usas ahora? El que está en la parte superior puede crear muchos UIImageViews y es bueno para entender el problema, pero no como una implementación real. – Christoph

+0

Uso de este último: self.imageView.image = _dataObject – user1048042

3

Esto funcionó para mí

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]; 

y en el dataViewController

- (void)viewWillAppear:(BOOL)animated { 
[super viewWillAppear:animated]; 
self.pageImage.image = self.dataObject; 
} 

El pageimage es un UIImageView con un IBOutlet.

Cuestiones relacionadas