Забавно, как Apple скрывает проблему подклассов за обсуждением режимов портрета / пейзажа. Я сразу перестал читать этот абзац, потому что я поддерживаю только портретный режим. Assholes.
я есть контроллер камеры на основеUIImagePickerController
:
@interface CameraController : UIImagePickerController
<UIImagePickerControllerDelegate>
// <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
{
}
@end
Init генерирует предупреждение, чтоUINavigationControllerDelegate
не реализовано (ожидается, так как я не хочу, чтобы мой объект был этим делегатом):
- (id) init
{
if(!(self = [super init]))
return nil;
super.sourceType = UIImagePickerControllerSourceTypeCamera;
// Commenting delegat does not help
super.delegate = self;
return self;
}
Несмотря на то, чтоUIImagePickerControllerDelegate
делегат,imagePickerController:didFinishPickingMediaWithInfo:
не является называется. Я также проверил, что два других метода делегата тоже не вызываются.
Если я требую соблюденияUINavigationControllerDelegate
, imagePickerController:didFinishPickingMediaWith
является позвонил, но я врезался вdismissModalViewControllerAnimated
:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
ASSERT_VALID(picker);
ASSERT_VALID(info);
// Commenting does not help
[picker autorelease];
UIImage* image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
ASSERT_VALID(image);
// Image processing commented out
// super.delegate = nil;
// picker.delegate = nil;
// [self dismissModalViewControllerAnimated:YES];
// [super dismissModalViewControllerAnimated:YES];
// [self performSelector:@selector(dismissModalViewControllerAnimated:) withObject:nil afterDelay:0.0f];
// [self dismissModalViewControllerAnimated:NO];
// [super dismissModalViewControllerAnimated:NO];
[self performSelector:@selector(dismissModalViewControllerAnimated:) withObject:nil afterDelay:0.5f];
}
Я посмотрел несколько постов на этом контроллере CURSED. Ближайший,UIImagePickerControllerDelegate не отвечает должным образом а такжеiPhone - UIImagePickerControllerDelegate наследование, не помогло.
Есть идеи, что может быть на этот раз? Сразу возникают два вопроса: (1) что значит бытьUINavigationControllerDelegate
связано с вызовом моего обратного вызова с изображением, и (2) почему этот объект не может очиститься должным образом?
Заранее спасибо,