Как скрыть панель вкладок в приложении на основе представления / панели вкладок - PullRequest
2 голосов
/ 12 мая 2011

Я работаю над простым приложением для 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];

}

У кого-нибудь есть идея?

Ответы [ 2 ]

2 голосов
/ 17 апреля 2012

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

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

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

0 голосов
/ 17 апреля 2012

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

-(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)];

}
...