2012-03-08 60 views
1

我有一个类,它是包含4个子viewController的UITabBarController的子类。我添加了一个类似于RedLaser,Instagram,Path,DailyBooth和其他应用程序的按钮。我的是喜欢这里的顶部例如:从UITabBarController呈现的Modal viewController

Image of tabBar with center button

此按钮调用在TabBarController的方法呈现一个模式的viewController。当它被解散时,当前所选viewController中的NavigationControllers开始出现奇怪的行为。流行动画全部搞砸了,其他小错误发生,直到您选择tabBar上的另一个选项卡。然后,动画很好,直到viewController再次呈现。

我确定这是因为我错误地解雇了它,但我不确定这是如何完成的。

这是我在TabBarController代码:

-(void)showScanner { 
    ZBarReaderViewController *reader = [[ZBarReaderViewController alloc] init]; 
    reader.readerDelegate = self; 
    reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

    ZBarImageScanner *scanner = reader.scanner; 
    [scanner setSymbology:ZBAR_I25 
        config:ZBAR_CFG_ENABLE 
         to:0]; 
    [scanner setSymbology:ZBAR_QRCODE 
        config:ZBAR_CFG_ENABLE 
         to:0]; 

    [reader setModalTransitionStyle:UIModalTransitionStyleCoverVertical]; 
    [self presentModalViewController:reader 
          animated:YES]; 
    [reader release]; 
    //[self playBeep]; 
    } 

-(void)imagePickerController:(UIImagePickerController *)picker  didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    id<NSFastEnumeration> results = [info objectForKey:ZBarReaderControllerResults]; 
    ZBarSymbol *symbol = nil; 
    for (symbol in results) 
     break; 
    NSString *barcode = symbol.data; 

    UINavigationController *searchNavController = [[self viewControllers] objectAtIndex:1]; 
    WLSearchViewController *searchVC = [searchNavController.viewControllers objectAtIndex:0]; 

    // WLSearchViewController *searchVC = [[self viewControllers] objectAtIndex:1]; 
    //[searchNavController popToRootViewControllerAnimated:NO]; 
    [self setSelectedViewController:searchNavController]; 
    [self dismissModalViewControllerAnimated:YES]; 

    [self playBeep]; 

    [searchVC handleSearchForTerm:barcode]; 
} 

-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

回答

4

找到什么是错的,想我会张贴此帮助别人谁在面临这样的。

我已经覆盖的viewDidAppear:动画:在我tabBarController,但我没有叫[super viewDidAppear:animated:]

补充说,一切都更好!

相关问题