2012-03-28 11 views
0

私はこれが非常に愚かであることを知っています。現在UIViewController

私はQRコードをスキャンするビューコントローラを持っています。 AppDelegatedidFinishLaunchingWithOptions)に作成し、コードのスキャンが完了したらメソッドを呼び出すビューコントローラの代理人としてAppDelegateを設定します。その方法では、私はAppDelegateに実装して、UINavigationControllerを提示したいと思います。問題は、それが私のナビゲーションコントローラを提示していないことです。これは私のコードです:あなたがしようと

didFinishLaunchingWithOptions:self.window.rootViewControllerを設定するのを忘れよう

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    reader=[ZBarReaderViewController new]; 
    reader.readerDelegate=self; 
    reader.supportedOrientationsMask=ZBarOrientationMaskAll; 
    ZBarImageScanner *scanner=reader.scanner; 
    [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; 


    [self.window addSubview:reader.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    RootViewController *rootViewController=[[RootViewController alloc] init ]; //create root view controller 

    UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:rootViewController]; // create and init navigation controller with viewController 
    [navigationController setValue:[[GradientBar alloc] init] forKey:@"navigationBar"]; 

    [email protected]"mTLU"; 
    [reader presentModalViewController:navigationController animated:NO]; 

} 
+0

'[ZBarReaderViewController new]'の実装を見ることはできますか? – Clafou

+0

インターネットからダウンロードしたライブラリです。彼らはサンプルプロジェクトを持っていますが、リーダを提示するためにルートコントローラを使用していて、同じルートコントローラもデリゲートです。私の場合は、このZBarViewControllerをルートコントローラにして、スキャンが終了したら新しいView Controllerを表示します。 – Cosmin

+0

'didFinishLaunchingWithOptions:'に 'self.window.rootViewController'を設定するのを忘れたようです。 –

答えて

0

は思え:このコード

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    // Override point for customization after application launch. 
    self.reader=[ZBarReaderViewController new]; 
    self.reader.readerDelegate=self; 
    self.reader.supportedOrientationsMask=ZBarOrientationMaskAll; 
    ZBarImageScanner *scanner=reader.scanner; 
    [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0]; 

    self.window.rootViewController = self.reader; 

    [self.window addSubview:reader.view]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

AppDelegatepropertyあるreaderを前提としています。 の場合はiVarとなりますので、self.としてください(またはpropertyとすることをお勧めします)。

+0

私はこの[reader presentViewController:navigationController animated:YES completion:nil]を追加しました。 – Cosmin

+0

問題は、私が提示していたナビゲーションコントローラで、ダウンしていたサーバーに接続していたので、私のアプリケーションがフリーズしていたということでした。あなたの時間をありがとう。 – Cosmin

+0

あなたのコードでは、私は 'self.window.rootViewController'の設定を見ることができません。 'viewController'が' rootViewController'になりたいことは明らかではありません。 'didFinishPickingMediaWithInfo:'で作成したものなら 'didFinishLaunchingWithOptions:'で作成し、それをルートとして設定する必要があります。それで 'didAppear'であなたの' ZBarReaderViewController'を提示します... –