ios - 我可以使用 Xcode 在加载应用程序时打开相机吗?

标签 ios xcode camera

<分区>

Possible Duplicate:
How to launch iPhone Camera on viewDidLoad?

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

我正在尝试从 viewDidLoad 方法调用 startCameraControllerFromViewController,但我遇到了以下异常

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

这是我的代码

- (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;
}

最佳答案

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

只是一个猜测。

关于ios - 我可以使用 Xcode 在加载应用程序时打开相机吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14492482/

上一篇:ios - 核心定位不断循环

下一篇:ios - NSArray 在 iOS6 中有 5 个对象,但在 iOS5 中有 4 个对象?

相关文章:

ios - 在 CALayer 中添加 UIImage

swift - 快速打印图像后的数字列表是什么

image - 色度信号是否向 YUV 中的亮度添加任何信息?

c++ - 3D 相机出现意外滚动

iOS,为什么当我修改从 fetchedResult 创建的 MutableArray 的内容时它会自动更新自身?

ios - 如何从认知用户 ID 中删除外部身份并检查当前认知 ID 是否与任何外部身份合并?

xcode - 找不到选项的目录 - 升级 Swift 2.0

android - 无法获取相机运行状态

ios - UITableView 自定义单元格选项无法修改源变量

ios - UITabBarController setSelectedViewController : only a view controller in the tab bar controller's list of view controllers can be selected