我正在制作一个简单的iPhone应用程序,在某些情况下,它有一种非常奇怪的行为,我无法理解......
该应用有一个UIImageView
和一些控件,如UISwitch
,标签,progresbar等。这些控件最初处于某些状态,如开关关闭,标签包含一些初始文本, progresbar是隐藏的。这些状态最终会在与用户交互时发生变化。
过了一会儿,App应该用相机拍照。此图片将分配给我的UIIMageView
。所有对象只有一个委托控制器(为什么不呢?)。
现在问题出现了:在用相机拍摄照片并将其分配到图像视图后,所有控件都返回到初始状态......
当我评论一行时,图像将被分配到我的UIImageView:
imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
控件的状态不会改变!所以它只是由图像分配引起的,但为什么呢?!
有什么想法吗?
答案 0 :(得分:3)
听起来你正在viewDidAppear:
设置控件的状态。
当您显示图片选择器时,您的视图会消失,并会发送viewWillDisappear:
和viewDidDisappear:
。因此,当您关闭图片选择器时,您的视图会发送viewWillAppear:
和viewDidAppear:
。
如果您在该方法中设置控件的状态,那么只要调用这些方法,它们就会被重置。
也许考虑移动代码将控件状态设置为viewDidLoad
。