【发布时间】:2014-11-11 22:00:00
【问题描述】:
我正在尝试从 NSObject 子类显示图像选择器视图控制器,但是当我在应用程序的根 vc 上调用 presentViewController 时,应用程序崩溃且没有错误消息。
我的代码在这里:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
UIViewController *root = [[[[UIApplication sharedApplication] windows] objectAtIndex:0] rootViewController];
[root presentViewController:picker animated:YES completion:nil];
如果我在视图控制器中运行它,它就可以正常工作。
编辑:
我无法使用委托,因为我正在为 Unity 构建插件,并且无法通过其他方式获取视图控制器。
我在从 IBAction 调用当前视图控制器中的这段代码时注意到了崩溃:
- (IBAction)showPicker:(id)sender {
PhotoManager *manager = [[PhotoManager alloc] init];
[manager loadPhoto];
}
作为对 cmets 的回答,这是课程代码:
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
【问题讨论】:
-
这段代码不相关,它是我们需要看的SubClass,以及如何调用这段代码。祝你好运
-
还提供堆栈跟踪,显示您在崩溃时遇到的错误
-
Walter 说它在没有错误消息的情况下崩溃
标签: ios objective-c iphone uiimagepickercontroller