#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. это дерьмовый способ скрыть панель вкладок, вы не должны распространять его таким образом .. извините за голосование против.