@interface RootViewController : UIViewController <ZXingDelegate> {
IBOutlet UITextView *resultsView;
ZXingWidgetController *scanController;
+ NSString *resultsToDisplay;
}
-@property (nonatomic, assign) IBOutlet UITextView *resultsView;
+@property (nonatomic, retain) IBOutlet UITextView *resultsView;
+@property (nonatomic, retain) NSString *resultsToDisplay;
- (IBAction)scanPressed:(id)sender;
@end
@implementation RootViewController
@synthesize resultsView;
-
+@synthesize resultsToDisplay;
#pragma mark -
#pragma mark View lifecycle
[super viewDidLoad];
[self setTitle:@"ZXing"];
scanController = [ZXingWidgetController alloc];
- [scanController setOneDMode:false];
- [scanController setShowCancel:true];
+ [scanController setOneDMode:NO];
+ [scanController setShowCancel:YES];
scanController = [scanController initWithDelegate:self];
NSBundle *mainBundle = [NSBundle mainBundle];
[scanController setSoundToPlay:[[NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO] retain]];
#pragma mark Memory management
- (void)scanResult:(NSString *)result {
- [resultsView setText:result];
- [self dismissModalViewControllerAnimated:true];
+ //[self.resultsView setText:result];
+ [self dismissModalViewControllerAnimated:NO];
+ self.resultsToDisplay = result;
+}
+
+- (void)viewWillAppear:(BOOL)animated {
+ if (resultsToDisplay)
+ {
+ [resultsView setText:resultsToDisplay];
+ [resultsView setNeedsDisplay];
+ }
+
}
- (void)cancelled {
- (void)dealloc {
- [scanController dealloc];
+ [resultsView release];
+ [scanController release];
+ [resultsToDisplay release];
[super dealloc];
}