2017-12-14 32 views
0

イベントにタブバーを表示しているアプリケーションがあります。私が使用しているメソッドは、以下のとおりです。しかし、私はそれを目に見えるようにしようとしているときにはうまくいきません。タブバーを表示させることができません

-(void)setTabBarVisible:(BOOL)visible animated:(BOOL)animated completion:(void (^)(BOOL))completion { 

    // RootViewController* tabBarController = (RootViewController*)self.navigationController.parentViewController.parentViewController; 
    UITabBarController *tabBarController = self.tabBarController; 

    CGFloat duration = (animated)? 0.3 : 0.0; 

    CGRect frame = tabBarController.tabBar.frame; 
    CGFloat height = frame.size.height; 
    CGFloat offsetY = (visible)? -height : height; 


    CGRect playerFrame = player.view.frame; 
    CGRect toolBarFrame = self.toolbar.frame; 

    [UIView animateWithDuration:duration animations:^{ 

     CGRect fr = CGRectOffset(frame, 0, offsetY); 
     tabBarController.tabBar.frame = fr; 
     if((!visible && ![self toolBarOnBottom]) || visible) { 
      self.toolbar.frame = CGRectOffset(toolBarFrame, 0, offsetY); 
      [self.toolbar layoutIfNeeded]; 
     } 

    } completion:completion]; 


} 

は、私は私は私は、これが問題だと思う、タブバーの枠がゼロである、私は、このメソッドを呼び出して二回目は、それが見えるようにコードをデバッグするとき。私はこれをXcode 9でiOS 11 SDKでテストしています。セーフエリアがこれと何か関係があるかどうかはわかりません。

ご協力いただければ幸いです。

+0

1で完璧に動作万が一 '' tabBarController' nil'でますか?あなたはいつこのメソッドを呼び出しますか? (他の方法から)。 3.自動レイアウトを使用していますか? – danypata

+0

tabbarcontrollerはnilではありません。また、自動レイアウトを使用しています –

答えて

関連する問題