我的代码根据使用的相机执行不同的逻辑,例如:
if(aPickerInstance.cameraDevice == UIImagePickerControllerCameraDeviceFront){
// Front camera logic
}else{
// Rear camera logic
}
我的问题是,当切换发生时,从前到后,反之亦然,我发现没有办法告诉" cameraDevice"财产价值已经改变,以便重新评估我的州。 (基本上重新运行逻辑块以为新选择的摄像机设置正确的一切)。
答案 0 :(得分:0)
创建选择器时,添加一个观察者:
[_picker addObserver:self forKeyPath:@"cameraDevice" options:NSKeyValueObservingOptionNew context:nil];
然后添加处理程序:
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSLog(@"Keypath %@ change %@", keyPath, change);
}
更改[@“new”]会为cameraDevice提供一个新值。您也可以使用它来检测更改并触发您自己的cameraDevice状态检查。