Un raccourci vers le code
Horus
Membre
Bonjour bonjour,
Je suis à la recherche d'un raccourci comme peux l'être le "include" de php, car je dois utiliser plusieurs fois ce code :
- (IBAction)btnBndScanner:(id)sender {
// Do any additional setup after loading the view, typically from a nib.
// ADD: present a barcode reader that scans from the camera feed
ZBarReaderViewController * reader = [ZBarReaderViewController new];
reader.readerDelegate=self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
bool isiPhone5 = CGSizeEqualToSize([[UIScreen mainScreen] preferredMode].size,CGSizeMake(640, 1136));
UIImageView *bgQRScan;
if(isiPhone5){
bgQRScan=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320,568)];
bgQRScan.image=[UIImage imageNamed:@bgQrScan-568h.png];
}else{
bgQRScan=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
bgQRScan.image=[UIImage imageNamed:@bgQrScan.png];
}
[reader.view addSubview:bgQRScan];
//ajout de la barre de navigation
UIImageView *NavBarQrCode=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 65)];
NavBarQrCode.image=[UIImage imageNamed:@statuBarre.png];
[reader.view addSubview:NavBarQrCode];
// ajout d'un bouton retour
UIButton *barButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 21, 50, 45)];
[barButton setTitle:@"" forState:UIControlStateNormal];
[barButton setImage:[UIImage imageNamed:@backButton.png] forState:UIControlStateNormal];
[barButton addTarget:self action:@selector(retour) forControlEvents:UIControlEventTouchDown];
barButton.enabled=YES;
[reader.view addSubview:barButton];
// ajout du texte :
UILabel *texteQrScan=[[UILabel alloc] initWithFrame:CGRectMake(0, 100, 320, 50)];
texteQrScan.text=@Scanner;
texteQrScan.textColor=[UIColor whiteColor];
texteQrScan.numberOfLines=3;
texteQrScan.textAlignment=NSTextAlignmentCenter;
[reader.view addSubview:texteQrScan];
// present and release the controller
reader.showsZBarControls = NO;
[self presentViewController:reader animated:YES completion:nil];
}
- (IBAction)retour
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (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)
// EXAMPLE: just grab the first barcode
break;
// EXAMPLE: do something useful with the barcode data
NSLog(@%@",symbol.data);
UIAlertView *AlertQrCode=[[UIAlertView alloc] initWithTitle:@Bravo message:@Le QrCode a été correctement flashé ! delegate:self cancelButtonTitle:@Ok otherButtonTitles:nil];
[AlertQrCode show];
[self dismissViewControllerAnimated:YES completion:nil];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
//[reader dismissModalViewControllerAnimated: YES];
}
Donc j'utilise ZBar pour lire des QrCodes, et ayant plusieurs fois le bouton permettant d'accéder à la vue de scan je souhaiterais le noter une seul fois puis l'appeler dans la fonction d'action des bouttons
-> J'ai essayé de créer une fonction qui me return reader;
Le problème est au moment de la détection du QrCode celui plante ainsi que pour le bouton retour.
Donc si vous avez une fonction qui me permet de créer un fichier ou je coller mon coller et ses fonction puis dans
- (IBAction)btnBndScanner:(id)sender {
[ appelle mon code]
}
Merci d'avance,
Joey.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
oups >< une petite erreur pourrais-tu déplacer le sujet Ali stp
Edit: Merci Ali
Désolé pas le temps d'approfondir mais tu as tout intérêt à utiliser des delegates comme dans le code ci-dessous écrit par ton serviteur et qui bien sur n'est pas parfait...
Ensuite pour appeler cette classe ...
- (void)scanQRCode
{
// demande de scan QRCode
self.scanController.scanDelegate = self;
[self.scanController start];
}
... qui acceptera la délégation
#pragma mark - ScanControllerDelegate
- (void)scanControllerDidStart:(ScanController *)scanCtrl
{
self.isGeoloc = NO;
[self handleRequestStartedForBusStop:nil];
}
- (void)scanController:(ScanController *)scanCtrl didFinishWithStopCode:(NSString *)stopCode
{
self.needUpdateRecentsStops = YES;
[StopRealtime hoursByStop:stopCode withBlock:self.requestHandleBlock];
}
- (void)scanController:(ScanController *)scanCtrl didFailedWithError:(NSError *)error
{
DDLogError(@scanController:didFailedWithError:);
[self handleScanFailedWithError:error];
}
- (void)scanControllerDidCancel:(ScanController *)scanCtrl
{
self.infosLabel.text = @"";
}