Fix the double load issue.

This commit is contained in:
Joseph Harnish 2011-06-05 00:32:52 -04:00
parent 3a1525ec02
commit c449dad6b9
4 changed files with 27 additions and 7 deletions

View file

@ -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;

View file

@ -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 {

View file

@ -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 {
@ -39,7 +43,6 @@
self.navigationItem.rightBarButtonItem = cancelButton;
[cancelButton release];
UIButton *button;
UIImage *thumbnail;
int images_count = [imagePickerController.dataSource numberOfImagesInImagePicker:imagePickerController];
@ -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];
}

View file

@ -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;
};