繁体   English   中英

从UITabBarController呈现的模态viewController

[英]Modal viewController presented from UITabBarController

我有一个类是UITabBarController的子类,它包含4个子视图控制器。 我添加了一个类似于RedLaser,Instagram,Path,DailyBooth和其他应用程序的按钮。 我的就像这里的榜样:

tabBar的图象有中心按钮的

这个按钮调用TabBarController中的一个方法,它提供了一个模态viewController。 当它被解除时,当前所选viewController中的NavigationControllers开始表现得很奇怪。 在您选择tabBar上的另一个选项卡之前,pop动画都会搞砸,并且会发生其他小错误。 然后动画很好,直到再次呈现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];
}

发现什么是错的,我想发布这个是为了帮助其他人面对这个问题。

我已经覆盖了一个viewDidAppear:animated:在我的tabBarController中,但我没有调用[super viewDidAppear:animated:]

补充说,一切都更好!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM