이전 포스팅에서 이어집니다.
2011/09/05 - [공부/iOS] - ZXing 라이브러리를 이용한 QR코드 리더 앱 개발하기 #1. ZXing 라이브러리 추가루트 뷰 컨트롤러 추가
닙(Xib) 파일을 포함하는 새 뷰 컨트롤러를 프로젝트에 추가한다. 이름은 RootViewController로 한다. 추가 후 ZXingTestAppDelegate.m 파일과 RootViewController.m 파일의 확장자를 'mm' 으로 변경한다.
* 프로퍼티 선언, 릴리즈 코드는 생략.
RootViewController.xib
QR코드 스캔 결과를 표시할 읽기 전용의 UITextField 컨트롤과 UIButton 컨트롤을 추가한다.
RootViewController.h
ZXingDelegate 프로토콜을 추가하고 아웃렛, 액션 매서드를 선언한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #import <UIKit/UIKit.h> #import "ZXingWidgetController.h" #import "QRCodeReader.h" @interface RootViewController : UIViewController <ZXingDelegate> { UITextField *results; } @property (retain, nonatomic) IBOutlet UITextField *results; - (IBAction)scanPressed:(id)sender; @end |
RootViewController.mm
scanPressed: 액션 메서드와 XZingDelegate 프로토콜 메서드를 구현한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | - (IBAction)scanPressed:(id)sender { // QR코드 스캔 뷰 컨트롤러 선언 ZXingWidgetController *controller = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO]; QRCodeReader *reader = [[QRCodeReader alloc] init]; NSSet *readers= [[NSSet alloc] initWithObjects:reader, nil]; [reader release]; controller.readers = readers; [readers release]; // 모달 뷰로 표시한다. [self presentModalViewController:controller animated:YES]; [controller release]; } #pragma mark - XZingDelegate // QR코드 스캔 결과를 표시 - ( void )zxingController:(ZXingWidgetController *)controller didScanResult:(NSString *)result { NSLog(@ "result : %@" , result); self.results.text = result; [self dismissModalViewControllerAnimated:NO]; } // 스캔 취소 - ( void )zxingControllerDidCancel:(ZXingWidgetController *)controller { [self dismissModalViewControllerAnimated:YES]; } |
ZXingTestAppDelegate.h
RootViewController 프로퍼티를 선언한다.
1 2 3 4 5 6 7 8 9 10 11 12 | #import <UIKit/UIKit.h> #import "RootViewController.h" @interface ZXingTestAppDelegate : NSObject <UIApplicationDelegate> { RootViewController *rootViewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) RootViewController *rootViewController; @end |
ZXingTestAppDelegate.mm
RootViewController 객체를 생성해서 뷰로 추가한다.
1 2 3 4 5 6 7 8 9 10 | - ( BOOL )application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.rootViewController = [[RootViewController alloc] initWithNibName:@ "RootViewController" bundle:nil]; [self.window addSubview:self.rootViewController.view]; [self.window makeKeyAndVisible]; return YES; } |
빌드하고 디바이스에서 실행한다.
출처 : http://sunsideup.tistory.com/85
'프로그래밍 > iOS' 카테고리의 다른 글
Push Notification 적용하기 #1. SSL 인증서 생성 (0) | 2012.04.25 |
---|---|
ZBar 라이브러리를 이용한 바코드 스캔 앱 개발하기 (0) | 2012.04.25 |
ZXing 라이브러리를 이용한 QR코드 리더 앱 개발하기 #1. ZXing 라이브러리 추가 (0) | 2012.04.25 |
zbar & beep sounds for QR code (0) | 2012.04.25 |
Skinning a UIProgressView with drawRect and images (0) | 2012.04.25 |