2014-01-10 1 views
0

Я хочу добавить панель вкладок в свой проект. Предположим, у меня есть всего шесть контроллеров. Теперь я пытаюсь добавить панель вкладок только третье число контроллеров. Как я могу это сделать? Я пытался это сделать. У меня есть коды в приложении delegate.m, но после написания кода в приложении делегата эффекты попадают во все контроллеры представлений.В IOS как добавить UITabBarController в конкретный UIViewController

+0

Для этого вам нужно скрыть и показать свою вкладку в любом своем контроллере по вашему желанию. –

+0

, пожалуйста, добавьте примеры кода. –

+0

проверить это: http://stackoverflow.com/questions/19999532/how-to-add-uiviewcontroller-as-subview-to-be-visible-above-tabbar/20000657#20000657 –

ответ

0

Поместите этот код в пользовательских UITabBarController

-(void)setTabBarHidden:(BOOL)hidden { 
CGRect screenRect = [[UIScreen mainScreen] bounds]; 
float fHeight = screenRect.size.height; 
if(UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)){ 
    fHeight = screenRect.size.width; 
} 
if(!hidden) fHeight -= self.tabBar.frame.size.height; 

[UIView animateWithDuration:0.25 animations:^{ 
    for(UIView *view in self.view.subviews){ 
     if([view isKindOfClass:[UITabBar class]]){ 
      [view setFrame:CGRectMake(view.frame.origin.x, fHeight, view.frame.size.width, view.frame.size.height)]; 
     }else{ 
      if(hidden) { 
       [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, fHeight)]; 
      } 
     } 
    } 
}completion:^(BOOL finished){ 
    if(!hidden){ 
     [UIView animateWithDuration:0.25 animations:^{ 
      for(UIView *view in self.view.subviews) 
      { 
       if(![view isKindOfClass:[UITabBar class]]) { 
        if (!hidden) { 
         [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, fHeight)]; 
         for(UIView *view in self.view.subviews){ 
          if([view isKindOfClass:[UITabBar class]]){ 
           [view setFrame:CGRectMake(view.frame.origin.x, fHeight, view.frame.size.width, view.frame.size.height)]; 
          }else{ 
           if(hidden) { 
            [view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, fHeight)]; 
           } 
          } 
         } 
        } 
       } 
      } 
     }]; 
    } 
}];} 

В этом методе делегата от UITabBarController

- (BOOL)tabBarController:(UITabBarController*)tabBarController shouldSelectViewController:(UIViewController*)viewController 

Вы можете сделать чек Wether, чтобы показать или скрыть TabBar согласно которому ViewController это

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