ボタンがタッチされたときにUITabBarControllerとUINavigationControllerを同時に非表示にしようとしています。ここで非常に優れたコードスニペットを見つけました。uitabbarcontrollerを非表示にする方法ですが、UINavigationControllerとtabbarcontrollerの両方を非表示にしてアニメーション化しようとすると問題が発生します。また、インターネット上でタブバーを非表示にした例もたくさんありself.tabBarController.tabBar.hidden = YES
ますが、ボタンの項目のみが非表示になり、下部の黒いバーは非表示になりません。
たくさん遊んだ後、ウィンドウ全体のサイズをその場で変更するナビゲーションコントローラーの非表示に関連していると思うので、両方を正しくアニメーション化することができます。
-(IBAction)touchImage:(id)sender {
if (isImageFullScreen) {
isImageFullScreen = NO;
[self.navigationController setNavigationBarHidden:NO animated:YES];
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionCurveLinear
animations:^
{
hotelImageButton.frame = CGRectMake(0,20,320,92);
[self showTabBar:self.tabBarController];
}
completion:^(BOOL finished)
{
}];
} else {
isImageFullScreen = YES;
[self.navigationController setNavigationBarHidden:YES animated:YES];
[UIView transitionWithView:self.view
duration:0.5
options:UIViewAnimationOptionCurveLinear
animations:^
{
hotelImageButton.frame = CGRectMake(0,0,320,480);
[self hideTabBar:self.tabBarController];
}
completion:^(BOOL finished)
{
}];
}
}
hiddenTabBarメソッドとshowTabBarメソッドは、上記でリンクした他の投稿のものです。
他の組み合わせも試してみましたが、見栄えが良くありません。何か案は?
前もって感謝します。