Главное приложение перестает отвечать на события после завершения 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.