From c449dad6b92e674f53d834795419c6eb01d5c812 Mon Sep 17 00:00:00 2001 From: Joseph Harnish Date: Sun, 5 Jun 2011 00:32:52 -0400 Subject: [PATCH 1/4] Fix the double load issue. --- Classes/JPImagePickerDetailController.h | 2 ++ Classes/JPImagePickerDetailController.m | 5 ++++ Classes/JPImagePickerOverviewController.m | 24 +++++++++++++------ .../project.pbxproj | 3 +++ 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/Classes/JPImagePickerDetailController.h b/Classes/JPImagePickerDetailController.h index b96fd67..42264b4 100644 --- a/Classes/JPImagePickerDetailController.h +++ b/Classes/JPImagePickerDetailController.h @@ -21,11 +21,13 @@ IBOutlet UIImageView *previewImageView; NSInteger imageNumber; UIStatusBarStyle originalStatusBarStyle; + UIImage * largeImage; } @property (nonatomic, retain) IBOutlet UIImageView *previewImageView; @property (nonatomic, retain, readonly) JPImagePickerOverviewController *overviewController; @property (nonatomic) NSInteger imageNumber; +@property (nonatomic, retain) UIImage * largeImage; - (id)initWithOverviewController:(JPImagePickerOverviewController *)newOverviewController; - (void)prepareForImageNumber:(NSInteger)newImageNumber; diff --git a/Classes/JPImagePickerDetailController.m b/Classes/JPImagePickerDetailController.m index a3dd004..2897ac1 100644 --- a/Classes/JPImagePickerDetailController.m +++ b/Classes/JPImagePickerDetailController.m @@ -13,6 +13,7 @@ @implementation JPImagePickerDetailController @synthesize previewImageView, overviewController, imageNumber; +@synthesize largeImage; - (id)initWithOverviewController:(JPImagePickerOverviewController *)newOverviewController { if (self = [super initWithNibName:@"JPImagePickerDetailController" bundle:nil]) { @@ -64,12 +65,16 @@ - (void)prepareForImageNumber:(NSInteger)newImageNumber { + if(imageNumber == newImageNumber){ + previewImageView.image = largeImage; + } imageNumber = newImageNumber; previewImageView.image = [[overviewController.imagePickerController.dataSource imagePicker:overviewController.imagePickerController imageForImageNumber:imageNumber] scaleToSize:CGSizeMake(kJPImagePickerControllerPreviewImageSizeHeight, kJPImagePickerControllerPreviewImageSizeHeight) onlyIfNeeded:YES]; + largeImage = previewImageView.image; } - (IBAction)cancelPreview:(id)sender { diff --git a/Classes/JPImagePickerOverviewController.m b/Classes/JPImagePickerOverviewController.m index c097eb7..3f6f27f 100644 --- a/Classes/JPImagePickerOverviewController.m +++ b/Classes/JPImagePickerOverviewController.m @@ -26,6 +26,10 @@ return self; } +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; +} + // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { @@ -34,11 +38,10 @@ [self setImagePickerTitle:imagePickerController.imagePickerTitle]; UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(cancelPicking:)]; - self.navigationItem.rightBarButtonItem = cancelButton; - [cancelButton release]; - + target:self + action:@selector(cancelPicking:)]; + self.navigationItem.rightBarButtonItem = cancelButton; + [cancelButton release]; UIButton *button; UIImage *thumbnail; @@ -71,7 +74,7 @@ scrollView.contentSize = CGSizeMake(self.view.frame.size.width, height); scrollView.clipsToBounds = YES; - + } - (void)setImagePickerTitle:(NSString *)newTitle { @@ -97,10 +100,17 @@ - (void)buttonTouched:(UIButton *)sender { + //[self.activityIndicator startAnimating]; + [self performSelector:@selector(pushDetailViewWithSender:) withObject:sender afterDelay:0]; + +} + +- (void)pushDetailViewWithSender:(UIButton *)sender { if (detailController == nil) { detailController = [[JPImagePickerDetailController alloc] initWithOverviewController:self]; } - [detailController prepareForImageNumber:(NSInteger)sender.tag]; + + detailController.imageNumber = sender.tag; [imagePickerController.modalNavigationController pushViewController:detailController animated:YES]; } diff --git a/JPImagePickerDemo/JPImagePickerDemo.xcodeproj/project.pbxproj b/JPImagePickerDemo/JPImagePickerDemo.xcodeproj/project.pbxproj index 58b0d60..9e8db77 100755 --- a/JPImagePickerDemo/JPImagePickerDemo.xcodeproj/project.pbxproj +++ b/JPImagePickerDemo/JPImagePickerDemo.xcodeproj/project.pbxproj @@ -204,6 +204,7 @@ isa = PBXProject; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "JPImagePickerDemo" */; compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; hasScannedForEncodings = 1; knownRegions = ( English, @@ -273,6 +274,7 @@ GCC_PREFIX_HEADER = JPImagePickerDemo_Prefix.pch; INFOPLIST_FILE = "JPImagePickerDemo-Info.plist"; PRODUCT_NAME = JPImagePickerDemo; + SDKROOT = iphoneos; }; name = Debug; }; @@ -285,6 +287,7 @@ GCC_PREFIX_HEADER = JPImagePickerDemo_Prefix.pch; INFOPLIST_FILE = "JPImagePickerDemo-Info.plist"; PRODUCT_NAME = JPImagePickerDemo; + SDKROOT = iphoneos; }; name = Release; }; From a8d5ed347db7403e198836beb8b8dfb01da577c1 Mon Sep 17 00:00:00 2001 From: Joseph Harnish Date: Sun, 5 Jun 2011 00:37:37 -0400 Subject: [PATCH 2/4] tweaks to reset some of the changes I made for an app that aren't that way in the demo. --- Classes/JPImagePickerOverviewController.m | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Classes/JPImagePickerOverviewController.m b/Classes/JPImagePickerOverviewController.m index 3f6f27f..96b3f65 100644 --- a/Classes/JPImagePickerOverviewController.m +++ b/Classes/JPImagePickerOverviewController.m @@ -26,10 +26,6 @@ return self; } -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; -} - // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { @@ -100,9 +96,7 @@ - (void)buttonTouched:(UIButton *)sender { - //[self.activityIndicator startAnimating]; [self performSelector:@selector(pushDetailViewWithSender:) withObject:sender afterDelay:0]; - } - (void)pushDetailViewWithSender:(UIButton *)sender { From 5f6167ee7eb2bb06618a78bf59035f323db745c6 Mon Sep 17 00:00:00 2001 From: Joseph Harnish Date: Sun, 5 Jun 2011 09:43:55 -0400 Subject: [PATCH 3/4] This makes the demo app's nav controller black/translucent. --- JPImagePickerDemo/Classes/RootViewController.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/JPImagePickerDemo/Classes/RootViewController.m b/JPImagePickerDemo/Classes/RootViewController.m index 476b65c..6311069 100644 --- a/JPImagePickerDemo/Classes/RootViewController.m +++ b/JPImagePickerDemo/Classes/RootViewController.m @@ -26,6 +26,9 @@ // self.navigationItem.rightBarButtonItem = self.editButtonItem; chosenImage = -1; self.navigationItem.title = @"ImagePicker Demo"; + self.navigationController.navigationBar.translucent = YES; + self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; + } From bf8c76e4ca3c37d59a5a32572926bd2d2d486207 Mon Sep 17 00:00:00 2001 From: Joseph Harnish Date: Thu, 9 Jun 2011 13:37:25 -0400 Subject: [PATCH 4/4] removed a unneeded chunk of code. --- Classes/JPImagePickerDetailController.m | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Classes/JPImagePickerDetailController.m b/Classes/JPImagePickerDetailController.m index 2897ac1..06f6ae7 100644 --- a/Classes/JPImagePickerDetailController.m +++ b/Classes/JPImagePickerDetailController.m @@ -65,10 +65,7 @@ - (void)prepareForImageNumber:(NSInteger)newImageNumber { - if(imageNumber == newImageNumber){ - previewImageView.image = largeImage; - } - imageNumber = newImageNumber; + imageNumber = newImageNumber; previewImageView.image = [[overviewController.imagePickerController.dataSource imagePicker:overviewController.imagePickerController imageForImageNumber:imageNumber]