【问题标题】:can i open camera on onload of application using Xcode? [duplicate]我可以在使用 Xcode 加载应用程序时打开相机吗? [复制]
【发布时间】:2013-01-24 01:32:40
【问题描述】:

可能重复:
How to launch iPhone Camera on viewDidLoad?

我正在尝试在我的应用程序启动时打开相机 UI。问题是,我已经完成了带有开始按钮的相机应用程序,单击该开始按钮,相机就会打开并用于拍摄照片和视频。

我正在尝试从 viewDidLoad 方法调用 startCameraControllerFromViewController 但我面临以下异常

警告:尝试呈现不在窗口层次结构中的视图!

这是我的代码

- (void)viewDidLoad
{

    imagePicker = [[UIImagePickerController alloc]init];
    [self startCameraControllerFromViewController: self
                                    usingDelegate: self];
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (BOOL) startCameraControllerFromViewController: (UIViewController*) controller
                                   usingDelegate: (id <UIImagePickerControllerDelegate,
                                                   UINavigationControllerDelegate>) delegate {

    if (([UIImagePickerController isSourceTypeAvailable:
          UIImagePickerControllerSourceTypeCamera] == NO)
        || (delegate == nil)
        || (controller == nil))
        return NO;

    UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
    cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;

    cameraUI.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

    cameraUI.allowsEditing = NO;
    cameraUI.delegate = delegate;
    [controller presentViewController: cameraUI animated: YES completion:nil];
    return YES;
}

【问题讨论】:

标签: ios xcode camera


【解决方案1】:

您最好将代码放在 viewWillAppear 或 viewDidAppear 方法中。我的猜测是,即使视图已经加载,它实际上可能还不可见,并且 startCameraControllerFromViewController 调用可能不是那样的。

只是猜测。

【讨论】:

    猜你喜欢
    • 2018-08-03
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2021-12-23
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多