2014-02-16 3 views
0

Я пытаюсь создать кнопку, предназначенную для открытия камеры и кнопки, предназначенной для открытия рулона камеры. Вот мой код:Использование камеры и фотоальбома

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (IBAction)getCameraPicture:(id)sender{ 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.allowsEditing = NO; 
    picker.sourceType = (sender == takePictureButton) ? 
    UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
} 

- (IBAction)selectExistingPicture { 
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { 
     UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
     picker.allowsEditing = NO; 
     picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
    }else{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry" message:@"Device does not support photo library" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; 
     [alert show]; 
    } 
} 

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { 
    imageView.image = image; 
} 



- (void)viewDidLoad 
{ 
    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     takePictureButton.hidden = YES; 
    } 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

Любые идеи о том, почему он не работает? Все связано, но кнопки не делают ничего

Благодарности

EDIT

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController <UIImagePickerControllerDelegate> { 
    IBOutlet UIButton *takePictureButton; 
    IBOutlet UIImageView *imageView; 
} 

@property (nonatomic, retain) IBOutlet UIImageView *imageView; 
@property (nonatomic, retain) IBOutlet UIButton *takePictureButton; 

- (IBAction)getCameraPicture:(id)sender; 
- (IBAction)selectExistingPicture; 

@end 

ответ

2

Просто добавьте:

[self presentViewController:picker animated:YES completion:nil]; 

в конце своего 'getCameraPicture:' и в ваш «selectExistingPicture:».

И вы также можете добавить «UIImagePickerControllerDelegate» к интерфейсу вашего контроллера представления, чтобы вызвать вызов «didFinishPickingImage».

Edit:

Вы должны заменить ваш:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo; 

с

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

beccause этот метод давно устарел.

Используйте это так:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    self.imageView.image = chosenImage; 

    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} 

код из http://www.appcoda.com/ios-programming-camera-iphone-app/.

+0

Спасибо за ответ. Моя камера открывается, но изображение не меняется на фотографию, которую я взял ... Любые идеи? – user3268417

+1

Я отредактировал мой предыдущий ответ –

+0

Еще раз спасибо. Теперь все работает, только мое выбранное изображение не отображается, и изображение с камеры отображается. Все остальное в порядке сейчас – user3268417

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