Как я могу установить изображение UIImageView перед представлением представления?

У меня есть приложение, над которым я работаю, и, пытаясь сэкономить на представлениях, которые я делаю, я хочу иметь возможность динамически передавать представление изображения. Так, например, я делаю представление:

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];

Затем я хочу установить изображение, которое показывает изображение представления, прежде чем я его представлю:

UIImage *image = [UIImage imageNamed: @"IMG_5010_2.jpg"];
[controller.imageView setImage:image];
[controller.label setText:@"HI"];//I am trying to do this too and it isn't working...

Но это просто не работает!! У кого-нибудь есть мысли по этому поводу? Пожалуйста помоги!!

Спасибо

ПРИМЕЧАНИЕ. У меня есть атрибуты UIImageView и UILabel, установленные в представлении, которое я пытаюсь представить...


person Steven N.    schedule 04.02.2011    source источник
comment
Где вы устанавливаете изображение?   -  person BoltClock    schedule 04.02.2011
comment
В основном я хочу, чтобы представление отображалось с изображением в imageView. Представление представляет собой просто большое изображение с меткой сверху, но оно не позволяет мне настраивать эти значения таким образом... спасибо за вашу помощь.   -  person Steven N.    schedule 04.02.2011


Ответы (3)


Вы должны установить изображение в методе viewDidLoad соответствующего UIViewController, так как представление не будет существовать на этапе инициализации и будет отображаться к моменту вызова viewDidAppear.

person John Parker    schedule 04.02.2011

Возможно, вы могли бы попробовать это: добавьте два новых свойства в свой FlipsideViewController:

@property (retain) UIImage *image;
@property (copy) NSString *labelText;

Не забудьте синтезировать их в вашем FlipsideViewController.m. Затем, когда вы создаете экземпляр FlipsideViewController:

FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
UIImage *image = [UIImage imageNamed: @"IMG_5010_2.jpg"];
controller.image = image;
controller.labelText = @"Hi";

а затем в вашем методе FlipsideViewController viewDidLoad вы можете присвоить значения в свойствах представлению IBOutlets:

- (void)viewDidLoad {
    //do other stuff
    [self.imageView setImage:self.image];
    [self.label setText:self.labelText];
    //any other stuff
}
person ccjensen    schedule 04.02.2011

Уверены, что ваши IBOutlets правильно подключены в nib-файле?

Предполагая, что вы поместили этот код в нужное место в своем контроллере представления, он должен работать нормально. Так что либо вы находитесь не в том месте, где запускается этот код, либо то, что вы настраиваете, не привязано ни к каким объектам в пере. Это должно быть что-то одно из этих двух.

person Dan Ray    schedule 04.02.2011