1

最初のビューからsecondViewに移動しているときにタブバーを非表示にしていますが、2番目のビューから最初のビューにポップしているときにタブバーを表示するにはどうすればよいですか?

最初のビューで

 -(IBAction)gotoSecondView{

   VideoDetailViewController *vdoDtlPage = [[VideoDetailViewController alloc]initWithNibName:@"VideoDetailViewController" bundle:nil];


    self.hidesBottomBarWhenPushed=YES;

    [self.navigationController pushViewController:vdoDtlPage animated:YES];
    }

セカンドビューから

  -(IBAction)back:(id)sender{

   self.hidesBottomBarWhenPushed=NO;
  [self.navigationController popViewControllerAnimated:YES];

  }
4

2 に答える 2

0

1つのオプションは、NSNotificationCenterを使用することです

ここで答えを見てくださいIOS:2つのビューに戻ります

基本的に、ビューを閉じるときに親のビューコントローラに通知メソッドを追加するVideoDetailViewControllerと、その通知が呼び出され、メソッドが実行されます。

  -(IBAction)back:(id)sender{

    [self.navigationController popViewControllerAnimated:YES];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"showTabBar" object:nil];

  }

次に、親ビューコントローラーの関連メソッドが実行されます

- (void)showTabBar:(NSNotification *)notif
    {
        NSLog(@"Received Notification ");

        self.hidesBottomBarWhenPushed=NO;
}
于 2013-02-06T14:41:06.017 に答える
0

self.hidesBottom ...これが設定されているVCがスタック上にある間、navigationControllerは下部のバーを非表示にします

したがって、ルート用に非表示にする代わりに、vdoDtlPage用に非表示にします

-(IBAction)gotoSecondView{
    VideoDetailViewController *vdoDtlPage = [[VideoDetailViewController alloc]initWithNibName:@"VideoDetailViewController" bundle:nil];
    vdoDtlPage.hidesBottomBarWhenPushed=YES;
    [self.navigationController pushViewController:vdoDtlPage animated:YES];
}

次に、secondViewをポップすると、firstViewsが再びトップVCになり、hidesBottomBar = Noであるため、naviコントローラーがバーで再びアニメーション化されます。

于 2013-02-06T14:41:21.680 に答える