2012-03-28 27 views
0

我知道这是非常愚蠢的。现在UIViewController

我有一个扫描QR码的视图控制器。我在AppDelegatedidFinishLaunchingWithOptions)中创建了它,并且我还将我的AppDelegate设置为视图控制器的代理,该视图控制器将在完成代码扫描时调用方法。在该方法中,我在AppDelegate中实施了我想提供的UINavigationController。问题是它不显示我的导航控制器。这是我的代码:

- (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 2012-03-28 10:19:20

+0

这是我从互联网下载的图书馆。他们有一个示例项目,但他们使用根控制器来呈现阅读器,然后同一根控制器也是委托人。在我的情况下,我希望这个ZBarViewController成为根控制器,并且在它完成扫描后,我想呈现一个新的视图控制器。 – Cosmin 2012-03-28 10:21:57

+0

似乎忘了在'didFinishLaunchingWithOptions中设置'self.window.rootViewController':' – 2012-03-28 10:24:19

回答

0

好像你忘了设置在self.window.rootViewControllerdidFinishLaunchingWithOptions:

尝试:

- (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; 
} 

此代码假定readerAppDelegateproperty。如果它只是iVar您应该省略self.(或考虑将其设置为property)。

+0

我已经添加了这个[reader presentViewController:navigationController animated:YES completion:nil]; – Cosmin 2012-03-28 10:39:16

+0

问题是,在我所介绍的导航控制器中,我连接的服务器已关闭,所以我的应用程序被冻结。感谢您的时间。 – Cosmin 2012-03-28 10:43:15

+0

在你的代码中,我看不到'self.window.rootViewController'的设置。你也不清楚你想成为'rootViewController'的哪个'viewController'。如果它是'didFinishPickingMediaWithInfo:'中创建的那个,则应该在'didFinishLaunchingWithOptions:'中创建它并将其设置为根。然后在它的'didAppear'中显示你的'ZBarReaderViewController' ... – 2012-03-28 10:44:23

相关问题