2013-12-04 2 views
3

Я хочу, чтобы скрыть свой TabBar в iOS 6, когда я написал код, который приводится ниже он работает в iOS 7, но он показывает черную линию в iOS 6Скрыть TabBar в прошивке 6

self.tabBarController.tabBar.hidden = YES; 

Вот это снимок для iOS 6

:

+0

Можете ли вы проверить, что 'self.tabBarController' не' null' в iOS 6? – Raptor

+0

Тот же вопрос с решением здесь: http://stackoverflow.com/questions/19006545/ios-hiding-tab-bar-in-ios-6-creates-black-bar-fix-for-ios-6-breaks- ios-7 –

+0

@ShivanRaptor: когда я записываю 'self.tabBarController', он показывает' ' – Krunal

ответ

3

попробовать ниже кода Может быть, это поможет вам ...

- (void)hideTabBar:(UITabBarController *) tabbarcontroller 
{   
    for(UIView *view in tabbarcontroller.view.subviews) 
    { 
     if([view isKindOfClass:[UITabBar class]]) 
     { 
      if([UIScreen mainScreen].bounds.size.height==568) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 568 +20, view.frame.size.width, view.frame.size.height)]; 
      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 480+20, view.frame.size.width, view.frame.size.height)]; 
      } 

     } 
     else 
     { 
      if([UIScreen mainScreen].bounds.size.height==568) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 568)]; 
      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)]; 
      } 
     } 
    } 
} 

- (void)showTabBar:(UITabBarController *) tabbarcontroller 
{ 
    for(UIView *view in tabbarcontroller.view.subviews) 
    { 
     if([view isKindOfClass:[UITabBar class]]) 
     { 
      if([UIScreen mainScreen].bounds.size.height==568) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 519, view.frame.size.width, view.frame.size.height)]; 
      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)]; 
      } 
     } 
     else 
     { 
      if([UIScreen mainScreen].bounds.size.height==568) 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 519)]; 
      } 
      else 
      { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)]; 
      } 
     } 
    } 
} 
+1

Что это? (isiPhone5? 568: 480) +20 – Krunal

+0

Я реализовал BOOL в appdel для этого, если ([UIScreen mainScreen]. bounds.size.height == 568.0) { isiPhone5 = ДА; } –

+0

@ Krunal sry для этого теперь проверьте ответ –

0

Когда вы нажимаете контроллер, просто используйте yourViewController.hidesBottomBarWhenPushed = YES; [yourTabbarNavigationController pushViewController: helpViewController animated: YES];

Это удалит черный прозрачный слой, но если вы используете пользовательскую вкладку, вам также придется явно скрыть это представление.

Смежные вопросы