Я пытаюсь показать контроллер представления изображений в подклассе NSObject, но когда я вызываю presentViewController в корневом приложении vc, приложение вылетает без сообщения об ошибке.iOS показать контроллер представления из NSObject не работает
Мой код здесь:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
UIViewController *root = [[[[UIApplication sharedApplication] windows] objectAtIndex:0] rootViewController];
[root presentViewController:picker animated:YES completion:nil];
Если я запускаю это в контроллере представления он просто работает отлично.
EDIT:
Я не могу использовать делегат, потому что я строю плагин для Unity и я не могу получить контроллер представления другими способами, чем это.
Я заметил, что сбой при вызове этого кода в текущем контроллере представления из IBAction:
- (IBAction)showPicker:(id)sender {
PhotoManager *manager = [[PhotoManager alloc] init];
[manager loadPhoto];
}
В ответ на замечания Вот код класса:
PhotoManager.h:
@interface PhotoManager : NSObject <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
- (void)loadPhoto;
@end
.m:
@implementation PhotoManager {
UIViewController *root;
}
- (void)loadPhoto {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
root = [[[[UIApplication sharedApplication] windows] objectAtIndex:0] rootViewController];
[root presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[root dismissViewControllerAnimated:YES completion:nil];
NSLog(@"%@", info);
}
@end
Этот код не имеет значения, его подклассов мы должны видеть, и как вы называете этот код. Удачи – meda
обеспечить также stacktrace, показывающий, какую ошибку вы получите при ее сбое – royherma
Уолтер сказал, что он сбой без сообщений об ошибках – NCFUSN