Как скрыть панель вкладок в приложении на основе просмотра / панели вкладок

Я работаю над простым приложением для iPhone на основе просмотра. На главном экране приложения вы можете перейти к 4 различным представлениям. Одно из этих представлений состоит из панели вкладок. Поскольку это не обычный подход, я использовал обходной путь без UITabController.

Для этого я использовал эту тему: https://discussions.apple.com/thread/2099944?start=0&tstart=0

И этот пример кода: http://pymbian.svn.sourceforge.net/svnroot/pymbian/stuff/testtab_raynewbie/Classes/

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

Я пробовал несколько подходов, описанных здесь.

myTabBar.hidden = YES
hidesBottomBarWhenPushed = YES

Но, похоже, ничего не работает .... Я думаю, проблема где-то в странной структуре контроллеров пользовательского интерфейса представлений. Потому что теперь структура выглядит так.

MainViewController
- ViewController with TabBar
  - tab1viewcontroller
  - tab2viewcontroller
- other viewcontrollers

И возврат к основному представлению выполняется в tab1viewcontroller, где я ничего не могу сделать с TabBar. Во всех других представлениях я возвращаюсь с этим кодом:

-(IBAction) BackAction:(id)sender {

mainControllerView = [[MainControllerView alloc] initWithNibName:@"MainControllerView" bundle:nil];
[self.view addSubview:mainControllerView.view];
[mainControllerView.view release];

}

Есть идея?


person Slaapyhoofd    schedule 12.05.2011    source источник
comment
У меня такой же пробем, чувак. У есть какое-нибудь решение?   -  person The iCoder    schedule 23.02.2012


Ответы (2)


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

LoginViewController *loginViewObj =[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginViewObj.hidesBottomBarWhenPushed=YES;

LoginViewController - это представление, которое нужно разместить там, где панель вкладок не требуется. :)

person NiKKi    schedule 17.04.2012

Попробуйте следующий код в представлении-контроллере, где вы хотите скрыть панель вкладок

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];
    [self.tabBarController.view setFrame:CGRectMake(0, 0, 320, 560)];
}

и

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:YES];
    [self.tabBarController.view setFrame:CGRectMake(0, 0, 320, 480)];

}
person Akshay Aher    schedule 17.04.2012
comment
это дерьмовый способ скрыть панель вкладок, вы не должны распространять его таким образом ... извините за голосование против. - person newton_guima; 16.06.2012