如何从应用程序代表中显示iphone上的相机?可能吗?

时间:2010-06-11 16:37:58

标签: iphone camera uiimagepickercontroller

我正在玩一个打开相机的简单程序。这就是我想要做的所有事情。我是初学者,我相信我在iPhone的UI管理方面有了基础知识,所以我决定给这个人一个旋转。

我现在要做的是......

- (BOOL) application:(UIApplication*) application didFinishLaunchingWithOptions:(NSDictionary*) launchOptions
{
    UIImagePickerController * camera = [[UIImagePickerController alloc] init];
    camera.delegate = self;
    camera.sourceType = UIImagePickerControllerSourceTypeCamera;
    camera.allowsEditing = NO;
    camera.showsCameraControls = NO;
    [viewController presentModalViewController:camera animated:NO];

    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

return YES:
}

所以基本上,初始化相机,设置一些东西并在主视图中显示它。我将相机的委托设置为self,因为此代码放在委托类中(是的,委托类符合UIImagePickerControllerDelegate&& UINavigationControllerDelegate)。

现在的主要问题是屏幕上没有任何内容出现。我完全不知道我做错了什么,特别是因为程序正确构建而没有错误或警告......

任何帮助表示赞赏!非常感谢:D

1 个答案:

答案 0 :(得分:3)

在将视图添加到窗口之前,您正试图从视图控制器中显示UIImagePickerController。那不行。必须从已经显示的视图中显示它。

我不能确定这会有效,因为我没有尝试过,但是切换代码的​​顺序。首先将视图控制器添加到窗口:

- (BOOL) application:(UIApplication*) application 
             didFinishLaunchingWithOptions:(NSDictionary*) launchOptions
{
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];

    UIImagePickerController * camera = [[UIImagePickerController alloc] init];
    camera.delegate = self;
    camera.sourceType = UIImagePickerControllerSourceTypeCamera;
    camera.allowsEditing = NO;
    camera.showsCameraControls = NO;
    [viewController presentModalViewController:camera animated:NO];

    return YES:
}

如果这不起作用,那么尝试将您的UIImagePickerController代码移动到根视图控制器的-viewDidLoad(无论 viewController 在您的代码中)。