Почему я не могу установить imageView UIViewController в другом UIViewController? - PullRequest
1 голос
/ 14 сентября 2011

У меня есть два UIViewControllers. В firstViewController есть кнопка, действие кнопки -

SecondViewController *controller = [[SecondViewController alloc]init];
UIImage *image1 = [UIImage imageNamed:@"a.jpg"];
controller.imageView.image = image1;
[self presentModalViewController:controller animated:YES];

при нажатии кнопки появляется представление SecondViewController, но изображение viewview не изменилосьto "a.jpg". Мне нужна помощь, спасибо.

Ответы [ 5 ]

1 голос
/ 14 сентября 2011

Контроллер представления не загружает свой вид, пока ему это не нужно. Получив доступ к свойству imageView, вы получите обратно nil, если вызовете его до загрузки представления. Вы можете заставить контроллер представления загрузить свое представление, явно вызвав -view:

[controller view];

Это помеха, но она работает.

1 голос
/ 14 сентября 2011

Вместо отправки UIImage во второйViewController вы можете отправить строку «a.jpg», а в viewDidLoad secondviewController вы реализуете код

imageView.image = [UIImage imageNamed:imageName];
1 голос
/ 14 сентября 2011

Я думаю, вы не выделяете объект UIImageView для SecondViewController.

Добавить

controller.imageView = [[UIImageView alloc] init];

Также убедитесь, что в папке вашего проекта есть файл a.jpg.

1 голос
/ 14 сентября 2011

вы должны сделать что-то вроде:

FirstViewController

SecondViewController *controller = [[SecondViewController alloc] 
                                                  initWithAnImageNamed:@"a.jpg"];
[self presentModalViewController:controller animated:YES];

SecondViewController

-(id)initWithAnImageNamed:(NSString*)anImage
{
    self.imageView.image = [UIImage imageNamed: anImage];
    return self;
}

Примечание на стороне: a.jpg должен быть включен в комплект.

0 голосов
/ 15 сентября 2011

Я решил эту проблему. Я устанавливаю изображение как свойство вместо того, чтобы устанавливать imageview как свойство. Я устанавливаю изображение secondViewController в firstViewController, например:

SecondViewController *controller = [[SecondViewController alloc]init];
UIImage *image1 = [UIImage imageNamed:@"a.jpg"];
controller.image = image1;
[self presentModalViewController:controller animated:YES];

затем установите imageView в методе viewDidLoad secondViewController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...