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

#iphone #objective-c #xcode #view #tabbar

#iPhone #objective-c #xcode #Вид #панель вкладок

Вопрос:

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

Для достижения этой цели я использовал этот раздел: https://discussions.apple.com/thread/2099944?start=0amp;tstart=0

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

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

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

 myTabBar.hidden = YES
hidesBottomBarWhenPushed = YES
  

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

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

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

 -(IBAction) BackAction:(id)sender {

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

}
  

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

Комментарии:

1. У меня такая же проблема, чувак. У тебя есть какое-нибудь решение?, если ты что-то знаешь, пожалуйста, объясни, спасибо.

Ответ №1:

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

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

LoginViewController нужно ли перемещать представление там, где панель вкладок не требуется. 🙂

Ответ №2:

Попробуйте следующий код в 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)];

}
  

Комментарии:

1. это дерьмовый способ скрыть панель вкладок, вы не должны распространять его таким образом .. извините за голосование против.