Странная ошибка, вызванная назначением изображения в UIImageView - PullRequest
0 голосов
/ 24 октября 2009

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

Приложение имеет UIImageView и несколько элементов управления, таких как UISwitch, метка, progresbar и т. Д. Эти элементы управления изначально находятся в определенных состояниях, например, переключатель выключен, метка содержит некоторый исходный текст, progresbar скрыт , Эти состояния со временем изменятся во время взаимодействия с пользователем.

Через некоторое время приложение должно сделать снимок с камеры. Это изображение будет присвоено моему UIIMageView. Для всех объектов существует только один контроллер делегатов (почему бы и нет?).

И теперь возникает проблема: после съемки изображения камерой и присвоения его виду изображения все элементы управления возвращаются в исходное состояние ...

Когда я комментирую одну строку, где изображение будет присвоено моему UIImageView:

imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

состояния элементов управления не изменятся! Так что это вызвано только назначением изображения, но почему?!

Есть идеи?

1 Ответ

3 голосов
/ 24 октября 2009

Звучит так, как будто вы устанавливаете состояния элементов управления в viewDidAppear:.

При отображении средства выбора изображений ваш вид исчезает и отправляется viewWillDisappear: и viewDidDisappear:. Следовательно, когда вы закрываете средство выбора изображений, ваше представление отправляется viewWillAppear: и viewDidAppear:.

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

Возможно, рассмотрите возможность перемещения кода для установки состояний управления в viewDidLoad.

...