我使用zbarSDK QR碼閱讀器http://zbar.sourceforge.net/iphone/sdkdoc/dismissViewControllerAnimated並沒有消除使用ZbarSDK QR碼閱讀器
的SDK是非常偉大的,但我遇到了一個小問題。我需要用戶在開始掃描之前可視化一個視圖(包含有關如何掃描的信息),而不是按下一個使掃描開始(顯示相機)的按鈕,以及何時掃描qr碼以查看另一個視圖與特定的qr代碼鏈接的東西。 我已經這樣做了,但是當我開始掃描後在之後構建二維碼,但是如果在開始掃描時qr代碼是已經在視頻相機視圖中已經構造了,那麼該方法就不行。
當我開始掃描我使用
[self presentModalViewController: reader
animated: YES];
顯示視頻攝像機和掃描QR碼爲此
-(IBAction)StartScan:(id) sender
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.readerView.torchMode = 0;
ZBarImageScanner *scanner = reader.scanner;
// present and release the controller
[self presentModalViewController: reader
animated: YES];
[reader release];
}
。 然後當QR碼已被掃描我這樣做:
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
hiddenData=[NSString stringWithString:symbol.data];
[reader dismissViewControllerAnimated:YES completion:^{ NSLog(@"Test"); }];
[self performSegueWithIdentifier:@"aDettaglioOpera" sender:self];
}
駁回攝像機視圖與
[reader dismissViewControllerAnimated:YES completion:^{ NSLog(@"Test"); }];
以及呈現鏈接到下列SEGUE的圖。
現在一切順利,如果一個點的相機到一個點沒有qrcode,然後指向它qrcocde,而不是如果當我開始掃描我已經在相機的幀中的qr代碼imagePickerController得到執行(我選中),但dismissViewControllerAnimated:YES不會消除任何東西,並且在「完成」(而不是正確執行並且nslogging「test」)之後不執行該塊。
問題是什麼? presentModalViewController沒有足夠的時間讓dismissViewControllerAnimated起作用嗎?如果問題是這個,我該如何避免它?
您是否在解僱時檢查'reader'值?這是對的嗎?你在使用ARC嗎? – sergio
我該如何檢查其價值?至今我試過NSLog(@「PRESENTED:%@」,[self presentedViewController]);並且在這兩種情況下都有效地提供了一個ZBarReaderViewController ...我沒有使用ARC,因爲與另一個SDK有關的問題與ARV有一些問題,我無法解決。 –
哦,我忘了說,在有問題的情況下,如果我框架的另一件事情,而不是框架的qrcode解僱做它的工作 –