Как сделать так, чтобы камера на iphone появилась у делегата приложения?Является ли это возможным? - PullRequest
1 голос
/ 11 июня 2010

Я просто играюсь с простой программой, которая открывает камеру. Это буквально все, что я хочу сделать. Я новичок, и я считаю, что у меня есть основы в плане управления пользовательским интерфейсом для iPhone, поэтому я решил дать этому повод.

То, что я сейчас пытаюсь сделать, это ...

- (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 Ответ

3 голосов
/ 11 июня 2010

Вы пытаетесь отобразить 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 вашего корневого контроллера представления (независимо от того, *в вашем коде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...