2009-10-26 3 views
5

Приложение iPhone New York Times имеет панель вкладок с пятью пунктами панели вкладок. Когда вы выбираете вкладку «Последние», приложение отображает заголовок и реферат/сводку в UITableView. Когда вы выбираете отдельную историю для чтения, панель вкладок исчезает и заменяется верхним и нижним колонтитулом, который появляется/исчезает в зависимости от состояния приложения. Как приложение «скрывает» панель вкладок?«Скрыть» панель вкладок при нажатии на вид

Спасибо!

ответ

6

Контроллер представления, который находится в стеке контроллера навигации, имеет свой hidesBottomBarWhenPushed параметр, установленный в yes. Код выглядел бы примерно так в представлении таблицы -didSelectRowAtIndexPath.

NSDictionary *newsItem = [newsItems objectAtIndex:[indexPath row]]; 
NewsDetailViewController *controller = [[NewsDetailViewController alloc] init]; 
[controller setHidesBottomBarWhenPushed:YES]; 
[controller setNewsItem:newsItem]; 
[[self navigationController] pushViewController:controller animated:YES]; 
[controller release], controller = nil; 

Посмотрите на documentation for hidesBottomBarWhenPushed.

p.s. Вероятно, вы получите больше видимости по этому вопросу, если добавить к нему тег «iphone».

+0

Это должно быть указано как правильный ответ. Спасибо Мэтту все равно :) – Ahmed

2

У меня есть представление, которое необходимо дополнительно (в зависимости от какого-либо другого состояния) показывает панель управления навигационным контроллером. Это решение, которое я использовал для отображения & скрыть панель инструментов (с анимацией) при появлении представления & исчезает с помощью навигации. Похоже на то, что вам нужно.

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    // Show the nav controller toolbar if needed 
    if (someBool) 
     [self.navigationController setToolbarHidden:NO animated:animated]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    // Hide the nav controller toolbar (if visible) 
    [self.navigationController setToolbarHidden:YES animated:animated]; 
} 
10

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

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) { 
    // Custom initialization 
} 
self.hidesBottomBarWhenPushed = YES; 
return self; 
} 

Все самое лучшее.

Смежные вопросы