0

XCode v.4.6 を使用しており、QR コード スキャナーを使用するアプリを作成しようとしています。このページ ( http://iphonenativeapp.blogspot.com/2011/07/qr-code-readerscanner-for-iphone-app-in.html ) のチュートリアルに従い、次のコードをコピーして貼り付けました。

#import "QRscannerFirstViewController.h"

@interface QRscannerFirstViewController ()

@end

@implementation QRscannerFirstViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    self.title = NSLocalizedString(@"First", @"First");
    self.tabBarItem.image = [UIImage imageNamed:@"first"];
}
return self;
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#import "QRscannerFirstViewController.h"

@end
@implementation QRscannerViewController

@synthesize imgPicker,resultTextView;

-(IBAction)StartScan:(id) sender{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;

reader.readerView.torchMode = 0;

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

// present and release the controller
[self presentModalViewController: reader
                        animated: YES];

resultTextView.hidden=NO;
}

- (void) readerControllerDidFailToRead: (ZBarReaderController*) reader
                         withRetry: (BOOL) retry{
NSLog(@"the image picker failing to read");

}

- (void) imagePickerController: (UIImagePickerController*) reader           didFinishPickingMediaWithInfo: (NSDictionary*) info
{
NSLog(@"the image picker is calling successfully %@",info);
// ADD: get the decode results
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
NSString *hiddenData;
for(symbol in results)
    hiddenData=[NSString stringWithString:symbol.data];
NSLog(@"the symbols  is the following %@",symbol.data);
// EXAMPLE: just grab the first barcode
//  break;

// EXAMPLE: do something useful with the barcode data
//resultText.text = symbol.data;
resultTextView.text=symbol.data;


NSLog(@"BARCODE= %@",symbol.data);

NSUserDefaults *storeData=[NSUserDefaults standardUserDefaults];
[storeData setObject:hiddenData forKey:@"CONSUMERID"];
NSLog(@"SYMBOL : %@",hiddenData);
resultTextView.text=hiddenData;
[reader dismissModalViewControllerAnimated: NO];

}

@end

私の.mファイルに。このコードをエディターに入れると、これがどのように行われるかという警告が表示されます

[reader dismissModalViewControllerAnimated: NO];

この

[self presentModalViewController: reader
                        animated: YES];

は IOS 6.0 で廃止されました。アプリケーションを実行し、QR スキャナーを起動するボタンを押すと、アプリケーションが終了し、

スレッド 1: シグナル SIGABRT

エラーとハイライト

    return UIApplicationMain(argc, argv, nil, NSStringFromClass([QRscannerAppDelegate class]));

これを置き換えるために推奨されるものと、このエラーを修正するにはどうすればよいですか?

4

2 に答える 2

1

どうぞ

[self presentViewController:reader animated:YES completion:Nil];

[reader dismissViewControllerAnimated:NO completion:Nil];
于 2013-02-01T23:50:43.483 に答える
0

使用[self presentViewController:reader animated:YES completion:nil];して[reader dismissViewControllerAnimated:NO completion:nil];

于 2013-02-01T23:49:07.953 に答える