2012-04-24 7 views
7

Zacząłem od standardowego szablonu aplikacji opartego na PageView, dostarczonego przez firmę Apple. Teraz zamiast tekstu chcę strony w aplikacji wyświetlać obrazy. Tablica jest tworzona w następujący sposób:Uzyskiwanie tablicy obrazów w UIImageView (w UIPageViewController)

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

Tablica ta jest obsługiwana w następujący sposób:

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

Następnie w DataViewController.h:

@interface DataViewController : UIViewController 

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

I DataViewController.m I” m próbuje wyświetlić obrazy w de imageView w następujący sposób:

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

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

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

    } 

Jednak z tym kodem nie udaje mi się uzyskać obrazów na PageViewController. Masz pomysł, jak to zrobić, działa poprawnie?

Wielkie dzięki za pomoc!

Odpowiedz

5

Tutaj

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

tworzysz nową UIImageView, który jest zwisające arround nieużywany, niewidoczne i bez rodzica. Musisz ustawić jego rozmiar i umieścić go w jakiś sposób do widoku macierzystego z

[<parent> addSubview:self.imageView] 

aby pokazać.

Jeśli oryginalny UIImageView jest odczytywana z pliku zasobów (zakładam więc, ponieważ jest to IBOutlet) prostu zrobić

self.imageView.image = _dataObject 

i to powinno załatwić sprawę zamiast.

+0

Tak! Prace. Wielkie dzięki. – user1048042

+0

Który wariant już używasz? Ten na górze może utworzyć wiele UIImageViews i jest dobry do zrozumienia problemu - ale nie jako realna implementacja. – Christoph

+0

Używanie tego ostatniego: self.imageView.image = _dataObject – user1048042

3

ten pracował dla mnie

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

aw dataViewController

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

pageImage jest UIImageView z IBOutlet.