我正在玩一个打开相机的简单程序。这就是我想要做的所有事情。我是初学者,我相信我在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
答案 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 在您的代码中)。