1

Ich bin neu auf iPhone und Ziel-C-Entwicklung.So ändern Sie die Ansicht (XIB) nach imagePickerController: didFinishPickingMediaWithInfo?

Ich möchte wissen, wie ich die Ansicht (XIB-Datei) ändern kann, nachdem die Kamera ein Bild macht.

Kann mir jemand helfen oder Code teilen? Ich suche das seit einer Woche :( Nach der Fertigstellung der App bin ich bereit, mein Projekt zu teilen und/oder ein Tutorial zu machen.

Infos über meine App: Ich möchte Barcodes scannen und die Barcodes in meinem speichern ca. Zum Scannen von Barcodes mit der ZBarSDK Ich habe einen TabBarController, auf der ersten Registerkarte kann ich die Kamera öffnen Nach dem Scanvorgang möchte ich auf die zweite Registerkarte (eine andere XIB-Datei) springen und die Ergebnisse anzeigen .

Danke für jede Hilfe

Hier mein Code der ersten Registerkarte (ScanCodeViewController).

.h

#import <UIKit/UIKit.h> 

@class OutPutCodeViewController; 

@interface ScanCodeViewController : UIViewController <ZBarReaderDelegate> { 
IBOutlet UIImageView *img; 
OutPutCodeViewController *output;   
} 


@property (nonatomic, retain) IBOutlet UIImageView *img; 
@property (nonatomic, retain) OutPutCodeViewController *output; 

- (IBAction) scanButton; 

@end 

.m

#import "ScanCodeViewController.h" 


@implementation ScanCodeViewController 

@synthesize img; 
@synthesize output; 


- (void)didReceiveMemoryWarning { 
// Releases the view if it doesn't have a superview. 
[super didReceiveMemoryWarning]; 

// Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
[img release]; 
[super dealloc]; 
} 


- (IBAction) scanButton { 
NSLog(@"Scanbutton wurde geklickt!"); 

ZBarReaderViewController *reader = [ZBarReaderViewController new]; 
reader.readerDelegate = self; 

ZBarImageScanner *scanner = reader.scanner; 

[scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0]; 

[self presentModalViewController:reader animated: YES]; 
[reader release]; 
} 


- (void) imagePickerController: (UIImagePickerController*) reader 
didFinishPickingMediaWithInfo: (NSDictionary*) info 
{ 
NSLog(@"Entered imagePickerController"); 


// ADD: get the decode results 
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults]; 
ZBarSymbol *symbol = nil; 
for(symbol in results) { 
break; 
} 

img.image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
[reader dismissModalViewControllerAnimated: YES]; 


//[self presentModalViewController:output animated:YES]; //by using this, app chrashes 

} 


- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
[picker dismissModalViewControllerAnimated: YES]; 

} 


@end 

Und hier die Secong Tab (OutPutCodeViewController)

.h

#import <UIKit/UIKit.h> 


@interface OutPutCodeViewController : UIViewController { 
IBOutlet UIImageView *resultImage; 
IBOutlet UITextField *resultText; 
} 

@property (nonatomic, retain) IBOutlet UIImageView *resultImage; 
@property (nonatomic, retain) IBOutlet UITextField *resultText; 


@end 

.m

#import "OutPutCodeViewController.h" 


@implementation OutPutCodeViewController 

@synthesize resultImage; 
@synthesize resultText; 


- (void)didReceiveMemoryWarning { 
// Releases the view if it doesn't have a superview. 
[super didReceiveMemoryWarning]; 

// Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
[resultImage release]; 
[resultText release]; 

[super dealloc]; 
} 


@end 

Antwort

3

Verstanden!

Es ist nicht möglich, mehr zu animieren: YES. Hier ist der Beispielcode und der richtige Code.

Ich hoffe, es hilft anderen.

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

    // ADD: get the decode results 
    id<NSFastEnumeration> results = 
    [info objectForKey: ZBarReaderControllerResults]; 
    ZBarSymbol *symbol = nil; 
    for(symbol in results) 
     break; 

[reader dismissModalViewControllerAnimated: NO]; 

    TableDetailViewController *tc = [[TableDetailViewController alloc]   initWithNibName:@"TableDetailViewController" bundle:nil]; 
    tc.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:tc animated:YES]; 
    [tc release]; 

} 

brush51

0

In didFinishPickingMediaWithInfo sollten Sie [self.tabBarController setSelectedIndex:1] anrufen, um auf die zweite Registerkarte zu wechseln.

+0

Vielen Dank für Ihre Antwort. Kannst du mir sagen, wie ich nach dem imagePickerController eine XIB-Datei anzeigen kann: didFinishPickingMediaWithInfo:? Mein Ziel ist es, eine weitere XIB-Datei zu laden und in dieser geladenen XIB-Datei das aufgenommene Bild und den codierten Code anzuzeigen – brush51

Verwandte Themen