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