2009-05-08 8 views
0

Я пытаюсь установить изображение нового вида. Я установил изображение контроллера, а затем отобразил представление. Но в представлении контроллераDidLoad изображение отсутствует.Установить UIImage нового вида и отобразить его

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 

EditPictureSaveViewController *editPictureController = [EditPictureSaveViewController alloc]; 

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]]; 

UIImageView *imageView = [ [ UIImageView alloc ] initWithImage: image ]; 
[imageView setImage:image]; 
[editPictureController setPreview:imageView]; 

[self.navigationController pushViewController:editPictureController animated:YES]; 

ответ

2

Это потому, что viewDidLoad называют

[editPictureController initWithNibName:@"EditPictureSaveView" bundle:[NSBundle mainBundle]]; 

после загрузки СИБ.

editPictureController свойство изображения (которое я предполагаю UIImageView - смущает!) Не устанавливается до этого.

Выполняйте то, что вы делаете в viewDidLoad в viewWillAppear: вместо этого - свойство изображения будет установлено, когда pushViewController: анимированный: вызывает viewWillAppear :.

+0

Спасибо! Теперь я сохраняю свое изображение в приложении appDelegate и устанавливаю его в viewWillAppear: UIImageView вместо UIImage был предназначен только для тестовых целей - забыл его удалить. ;-) – Stefan

+0

Хотя для этого приложения это может быть хорошо, будьте осторожны с использованием AppDelegate в качестве резерва для хранения данных, эффективно превратив его в репозиторий для глобальных переменных. Это не только ослабляет ваш MVC, но и приведет к тому, что объекты вокруг в памяти будут намного длиннее, чем они нужны. – mmc

 Смежные вопросы

  • Нет связанных вопросов^_^