2012-03-08 13 views
1

私は、4つの子viewControllersを含むUITabBarControllerのサブクラスであるクラスを持っています。私は、RedLaser、Instagram、Path、DailyBooth、その他のアプリに似たボタンを追加しました。鉱山は、ここでトップの例のようなものです:UITabBarControllerから提示されたモーダルviewController

Image of tabBar with center button

このボタンは、モーダルのViewControllerを提示しTabBarControllerでメソッドを呼び出します。これが解消されると、現在選択されているviewController内のNavigationControllerが奇妙に動作し始めます。あなたがタブバー上の別のタブを選択するまで、ポップアニメーションはすべて乱され、小さなバグが発生します。その後、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:]

追加したことを呼び出していませんでしたし、すべてが良くなりました!

関連する問題