2016-02-20 3 views
0

Я реализовал следующее, и камера открыта, но приложение разбилось, а когда-то открывалось и делало снимки, тогда приложение было сжато, а в журнале было показано только «Снимок изображения, который не был отображен, пустой снимок. Убедитесь, что ваше представление было просмотрено как минимум один раз перед моментальным снимком или снимком после обновления экрана. Предупреждение о принимаемой памяти. "Камера не работает в IOS

Та же функциональность, которую я использовал для получения изображения из галереи и ее работы.

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:  (NSInteger)buttonIndex{ 
    if (buttonIndex==0) { 
    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

    UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Alert" 
                   message:@"Device has no Camera!" 
                  delegate:nil 
                cancelButtonTitle:@"OK" 
                otherButtonTitles: nil]; 

     [myAlertView show]; 

    }else{ 

     [self performSelector:@selector(loadCamera) withObject:nil afterDelay:1.0]; 

    }  
} 
} 


-(void)loadCamera{ 

picker1 = [[UIImagePickerController alloc] init]; 
picker1.delegate = self; 
picker1.allowsEditing=YES; 
picker1.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentViewController:picker1 animated:YES completion:NULL]; 
} 

Может кто-нибудь помочь.

+0

Пожалуйста, обратитесь: я думаю, что его ПОЛЕЗНЫЕ [Открыть камеру в ИОС ] (http://stackoverflow.com/questions/4812945/opening-camera-in-iphone-app-programatically) –

+0

CJ Теперь вы получили решение? – user3182143

+0

Вы попробовали все ниже, если хотите, скажите мне. – user3182143

ответ

0
- (IBAction)takeAPhoto:(VSButton *)sender { 


    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

     UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                   message:@"Device has no camera" 
                  delegate:nil 
                cancelButtonTitle:@"OK" 
                otherButtonTitles: nil]; 

     [myAlertView show]; 

    }else { 
     UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
     picker.delegate = self; 
     picker.allowsEditing = YES; 
     picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

     [self presentViewController:picker animated:YES completion:NULL]; 
    } 

} 
+0

presentModalViewController устарел в iOS 6. предложил использовать presentViewController @ Muhammad Raheel Mateen –

+1

да простите, я просто вижу это сейчас –

+0

Я вставлю этот метод, это тоже работает в моем проекте. –

0

решаемые его следующим кодом:

-(void)loadCamera{ 
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
      { 
      dispatch_async(dispatch_get_main_queue(), ^{ 

      picker1 = [[UIImagePickerController alloc] init]; 
      picker1.delegate = self; 
      picker1.allowsEditing=YES; 
      picker1.sourceType = UIImagePickerControllerSourceTypeCamera; 
      [self presentViewController:picker1 animated:YES completion: nil]; 

     }); 
     } 
    } 

Этот код работает для меня с прошивкой 9.2 и Xcode 7,2

0
[self performSelector:@selector(loadCamera) withObject:nil afterDelay:1.0]; 
-(void)loadCamera 

{ 
if ([UIIagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera) 

{ 

picker1 = [[UIImagePickerController alloc] init]; 
picker1.delegate = self; 
picker1.allowsEditing=YES; 
picker1.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentViewController:picker1 animated:YES completion:NULL]; 

} 

} 
+0

Я использовал выше, но приложение все еще разбилось, а также использовать его делегаты - (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info { –

Смежные вопросы