Главное приложение перестает отвечать на события после завершения UIViewController

я просто пытаюсь показать камеру или библиотеку фотографий, чтобы пользователь мог выбрать изображение и вернуться в приложение. Я мог, наконец, сделать это, но проблема, с которой я столкнулся, заключается в том, что когда UIViewController заканчивается (почему пользователь выбрал изображение или почему пользователь нажал отменить) приложение работает, но события перестали работать.

мой UIViewController определяется следующим образом:

@interface IOSNativeCb : UIViewController - (void)imagePickerControllerUIImagePickerController *)picker didFinishPickingMediaWithInfoNSDictionary *)info; @end @implementation IOSNativeCb - (void)imagePickerControllerUIImagePickerController *)picker didFinishPickingMediaWithInfoNSDictionary *)info { [picker dismissModalViewControllerAnimated:YES]; [picker release]; //log all the dictionary of the selected image for (id key in info) { NSLog(@"key: %@, value: %@ \n", key, [info objectForKey:key]); } } //if user canceled - (void)imagePickerControllerDidCancelUIImagePickerController *)picker { UIWindow *window = [UIApplication sharedApplication].keyWindow; [picker dismissViewControllerAnimated:YES completion:^{[self dismissViewControllerAnimated:YES completion:nil];}]; [self removeFromParentViewController]; [window makeKeyAndVisible]; } @end

и я инициализирую это с помощью openfl:

const void initAppGallery(){ UIWindow *window = [UIApplication sharedApplication].keyWindow; IOSNativeCb *wn = [[IOSNativeCb alloc] init]; [window addSubview: wn.view]; UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; picker.delegate = wn; [wn presentModalViewController:picker animated:YES]; [picker release]; }

попробовал несколько вещей в том, как я удаляю или отклоняю UIViewController, чтобы увидеть, может быть, представление все еще было основным, и по этой причине события больше не работали, но пока ничего.

какие-нибудь идеи о том, что я могу попробовать? У кого-нибудь была такая проблема? это мое первое кодирование времени в objetive-c + haxe, поэтому я немного потерял, какие функции или что-то может быть проблемой. Я кодирую слепых на языке, который я едва знаю.

С уважением.

2 ответа

Некоторые вещи, которые могут помочь вам найти ошибку:

  1. Используйте window.rootViewController = wn вместо [window addSubview:wn.view]
  2. Не отпускайте сборщик после вызова [picker rejectModalViewControllerAnimated: YES]. Вы уже выпустили сборщик один раз по методу initAppGallery, поэтому его выпуск снова может привести к неизвестным проблемам (возможно, сбоям)
  3. Вызов [window makeKeyAndVisible] должен быть выполнен в конце initAppGallery.

Возьмите также взгляд на этот вопрос, это может помочь вам немного.


решение было более простым, я просто добавил после [self removeFromParentViewController]; :

[self.view removeFromSuperview];

и работал: D

licensed under cc by-sa 3.0 with attribution.