Скрыть элемент управления панелью вкладок в проекте панели вкладок

Я работаю над проектом панели вкладок, и в нем у меня также есть контроллер навигации. и я делаю следующие шаги: - Показать навигацию на главном экране от первой вкладки до 5 следующих экранов. и на 6-м экране я хочу показать tabbarcontroller и хочу показать мою другую панель вкладок. Я попробовал следующий код: -

self.navigationController.tabBarController.hidesBottomBarWhenPushed = YES;

и некоторые другие. но пока не добился успеха. так может ли кто-нибудь подсказать, как мне это сделать?

Спасибо


person Mitesh Khatri    schedule 06.09.2010    source источник


Ответы (3)


Создайте два файла .h и .m без .xib

//.h file
#import <UIKit/UIKit.h>

@class Class1, Class2;
@interface TabbarController : UITabBarController 
{
        Class1 *class1;
    Class2 *class2;
    UINavigationController *nav1,*nav2;
}
@end

//.m файл

@implementation TabbarController

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad 
{
    [super viewDidLoad];

    class1 =[[Class1 alloc] initWithNibName:@"Class1" bundle:nil];
    nav1=[[UINavigationController alloc] initWithRootViewController:class1];
    class1.title = @"class1";
    class1.tabBarItem.image = [UIImage imageNamed:@"tab1.png"];
    class1.navigationController.navigationBar.hidden = TRUE;

    class2 =[[Class2 alloc] initWithNibName:@"Class2" bundle:nil];
    nav2=[[UINavigationController alloc] initWithRootViewController:class2];
    class2.tabBarItem.image = [UIImage imageNamed:@"tab2.png"];
    class2.title = @"class2";
    class2.navigationController.navigationBar.hidden = TRUE;

    NSArray *controllers = [NSArray arrayWithObjects:nav1,nav2,nil];
    self.viewControllers = controllers;
}

Перенаправьте ваше представление в это представление, где вам нужна панель вкладок.

person Baby Groot    schedule 13.04.2011
comment
перенаправьте ваше представление в это представление, где вам нужна панель вкладок. - person Baby Groot; 13.04.2011

Попробуйте это:

Создайте объект класса делегата

#import "DelegateClass.h"


DelegateClass *appDel;

Теперь в классе .m

-(void)viewDidLoad
{
  [super viewDidLoad];

  appDel= (DelegateClass *)[[UIApplication sharedApplication]delegate];

}

Теперь просто сделайте это в представлении, откуда вы осуществляете навигацию,

appDel.tabBarController.hidesBottomBarWhenPushed = YES;

Это была непростая задача, у меня она отлично сработала :)

person Ajay Sharma    schedule 13.04.2011

Вы должны использовать пользовательский UItabBarController. см. создание настраиваемого контроллера TabBar

person Baby Groot    schedule 13.04.2011