2012-04-04 16 views
0

Я новичок в этом Iphone development.I создал приложение панели вкладок, которые состоят из 6 вкладок это код для создания панели вкладок контроллера в appdelegaate файла didfinishlaunchingКак скрыть элемент панели вкладок?

UIViewController *viewController1 = [[[cardsAvailable1 alloc] 
             initWithNibName:@"cardsAvailable1" bundle:nil] autorelease]; 
UIViewController *viewController2 = [[[fetchcard1 alloc] 
             initWithNibName:@"fetchcard1" bundle:nil] autorelease]; 
UIViewController *viewController3 = [[[registration alloc] 
             initWithNibName:@"registration" bundle:nil] autorelease]; 
UIViewController *viewController4 = [[[logintab alloc] 
             initWithNibName:@"logintab" bundle:nil] autorelease]; 

UIViewController *viewController5 = [[[registration alloc] 
             initWithNibName:@"logout" bundle:nil] autorelease]; 
UIViewController *viewController6 = [[[logintab alloc] 
             initWithNibName:@"myprofile" bundle:nil] autorelease]; 

self.tabBarController = [[[UITabBarController alloc] init] autorelease]; 

self.tabBarController.viewControllers = [NSArray arrayWithObjects: 
             [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease], 
             [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease], 
             [[[UINavigationController alloc] initWithRootViewController:viewController3] autorelease], 
             [[[UINavigationController alloc] initWithRootViewController:viewController4] autorelease], 
             [[[UINavigationController alloc] initWithRootViewController:viewController5] autorelease], 
             [[[UINavigationController alloc] initWithRootViewController:viewController6] autorelease], 
             nil]; 
self.tabBarController.selectedIndex = 3; 

self.window.rootViewController = self.tabBarController; 
[self.window addSubview:self.tabBarController.view]; 

[self.window makeKeyAndVisible]; 

теперь моя проблема в том, после того, как человек - это вход в систему, то есть onclick кнопка входа, присутствующая на странице входа в систему, я хотел бы скрыть два элемента панели вкладок, т.е. страницу регистрации, а также страницу входа в систему, и вам нужно привести страницу выхода и страницу myprofile с панелью вкладок, включая карточку с извлечением карт и доступную карту может ли кто-нибудь предложить мне способ сделать это?

ответ

3

Вы можете добавлять и удалять элементы на панели вкладок, редактируя массив контроллеров представления для панели вкладок.

NSMutableArray newArrayOfItems = [[NSMutableArray alloc] initWithArray:self.tabBarController items]]; 
[newArrayOfItems removeObjectAtIndex:indexOfUnneededItem]; 
[self.tabBarController setItems:newArrayOfItems animated:true]; 
[newArrayOfItems release]; 

В вашем примере и в ответ на ваш комментарий следующий код будет работать до тех пор, пока вы импортируете заголовок делегата приложения.

NSMutableArray newArrayOfItems = [[NSMutableArray alloc] initWithArray: [[[UIApplication sharedApplication] delegate].tabBarController items]]; 
[newArrayOfItems removeObjectAtIndex:indexOfUnneededItem]; 
[[[UIApplication sharedApplication] delegate].tabBarController setItems:newArrayOfItems animated:true]; 
[newArrayOfItems release]; 
+0

я думаю, что это не будет работать, так как я создаю приложение панели вкладок, поэтому вкладка Штрихкод контроллера записывается в файл делегат didfinishlaunching.then, как я могу использовать этот код в другом файле класс. Можете ли вы сказать мне, где поставить этот код? – user1288402

+0

Вам понадобится ссылка на контроллер панели вкладок в ваших дополнительных файлах классов. Например, вы можете сделать контроллер панели вкладок собственностью делегата приложения и получить к нему доступ. Другим подходом было бы добавить в делегат приложения метод, который может выполнять ваш класс, и удалить его. –

+0

Я обновил код в своем ответе, чтобы работать для вашего конкретного приложения. –

1

Вы можете установить hidesBottomBarWhenPushed свойство перед нажатием вид контроллера. Существует пример код ниже:

LoginController *lc = [[LoginController alloc] initWithNibName:nil bundle:nil]; 
lc.hidesBottomBarWhenPushed = YES; 
[self.navigationController pushViewController:lc animated:YES]; 
[lc release];