0

我正在开发一个简单的 iPhone 应用程序,在某些情况下它有一个非常奇怪的行为,我无法理解......

该应用程序有一个UIImageView和一些控件,如 a UISwitch,标签,进度条等。这些控件最初处于某些状态,例如开关关闭,标签包含一些初始文本,进度条被隐藏。这些状态最终会在与用户的交互过程中发生变化。

过了一会儿,应用程序应该用相机拍照。这张照片将分配给我的UIIMageView. 所有对象只有一个委托控制器(为什么不呢?)。

现在问题来了:用相机拍照并将其分配给图像视图后,所有控件都返回到它们的初始状态......

当我注释掉一行时,图像将被分配给我的 UIImageView:

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

控件的状态不会改变!所以它只是由图像分配引起的,但为什么?!

有任何想法吗?

4

1 回答 1

3

听起来您正在将控件的状态设置为viewDidAppear:.

当您显示图像选择器时,您的视图会消失,并被发送viewWillDisappear:viewDidDisappear:. 因此,当您关闭图像选择器时,您的视图将被发送 viewWillAppear:并且viewDidAppear:.

如果您在该方法中设置控件的状态,那么只要调用这些方法,它们就会被重置。

也许考虑移动代码以将控制状态设置为viewDidLoad.

于 2009-10-24T12:11:44.000 回答