-
Notifications
You must be signed in to change notification settings - Fork 0
/
NewPhotoGroupViewController.m
104 lines (82 loc) · 3.5 KB
/
NewPhotoGroupViewController.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//
// NewPhotoGroupViewController.m
// Metasome
//
// Created by Omar Metwally on 9/12/13.
// Copyright (c) 2013 Logisome. All rights reserved.
//
#import "NewPhotoGroupViewController.h"
#import "PhotoGroup.h"
#import "PhotoGroupStore.h"
#import "PhotoArchiveStore.h"
@interface NewPhotoGroupViewController ()
@end
@implementation NewPhotoGroupViewController
@synthesize photoGroup;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
UIBarButtonItem *photoButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(takePicture:)];
//[[self navigationItem] setRightBarButtonItem:photoButton];
UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(savePhotoGroup)];
NSArray *rightBarButtonItems = [[NSArray alloc] initWithObjects:photoButton, saveButton, nil];
[[self navigationItem] setRightBarButtonItems:rightBarButtonItems];
// Create a new PhotoGroup object
photoGroup = [[PhotoGroup alloc] init];
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)savePhotoGroup
{
[[self photoGroup] setPhotoGroupName:[groupNameTextField text]];
[[self photoGroup] setPhotoGroupDescription:[groupNameTextView text]];
[[self photoGroup] setImageKey:key];
[[PhotoGroupStore sharedStore] addPhotoGroup:photoGroup];
NSLog(@"saving PhotoGroup %@", [[self photoGroup] photoGroupName]);
BOOL result = [[PhotoGroupStore sharedStore] saveChanges];
if (!result) {
NSLog(@"Unable to save new PhotoGroup to PhotoGroupStore!");
}
[[self navigationController] popViewControllerAnimated:YES];
}
-(IBAction)takePicture:(id)sender
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
if ([ UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
} else {
[imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
}
[imagePicker setDelegate:self];
[self presentViewController:imagePicker animated:YES completion:nil];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// Get picked image from info dictionary
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
// Create a CFUUID object (unique)
CFUUIDRef newUniqueID = CFUUIDCreate(kCFAllocatorDefault);
CFStringRef newUniqueIDString = CFUUIDCreateString(kCFAllocatorDefault, newUniqueID);
// Use that unique ID to set our item's imageKey
key = (__bridge NSString *)newUniqueIDString;
// Put that image onto screen in our imag view
[imageView setImage:image];
[[self photoGroup] setImageKey:key];
[[PhotoArchiveStore sharedStore] setImage:image forKey:[[self photoGroup] imageKey]];
CFRelease(newUniqueID);
CFRelease(newUniqueIDString);
[imageView setImage:image];
[self dismissViewControllerAnimated:YES completion:nil];
}
@end