2014-10-23 3 views
0

У меня есть код, который делает другая логика, на основе которого камера используется, например, как:обнаружения изменения активной камеры (передние/задние)

if(aPickerInstance.cameraDevice == UIImagePickerControllerCameraDeviceFront){ 
    // Front camera logic 
}else{ 
    // Rear camera logic 
} 

Моя проблема заключается в том, что, когда происходит переход, от передней к -rear или наоборот, я не нашел способа сказать, когда значение свойства «cameraDevice» изменилось для переоценки моих состояний. (в основном, повторные логические блоки, чтобы все было правильно для вновь выбранной камеры).

ответ

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); 
} 

изменения [@ "новый"] даст вам новое значение для cameraDevice. Вы также можете просто использовать это, чтобы обнаружить изменение и запустить собственную проверку состояния камеры.

+0

Пришло время попробовать то, что вы предложили, и несколько вариантов решения без успеха. Я не смог распознать изменения по какой-то странной причине. – LostBalloon

+0

Можете ли вы опубликовать код, когда вы создаете aPickerInstance, и какой контроллер это делает? – mitrenegade

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