2010-05-05 3 views
0

У меня есть четыре элемента панели вкладок в панели вкладок, которая является нижней частью представления, где у меня есть TableView. Я добавляю панель вкладок и элементы программным способом (см. Ниже код), а не через I.B. Нажмите на первые три элемента панели вкладок, показывая данные в том же самом TableView. Но нажатие на последние элементы панели табуляции будет нажимать на другой UIViewcontroller и показывать там данные. Проблема здесь в том, что когда я нажимаю на viewController при нажатии на последний элемент панели вкладок, основная «панель вкладок» удаляется.iPhone: Tabbar скрывается при нажатии с TableView на UIViewController

Tab бар Код:

UITabBar *tabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0, 376, 320, 44)]; 
item1 = [[UITabBarItem alloc] initWithTitle:@"First Tab" image:[UIImage imageNamed:@"first.png"] tag:0]; 
item2 = [[UITabBarItem alloc] initWithTitle:@"Second Tab" image:[UIImage imageNamed:@"second.png"] tag:1]; 
item3 = [[UITabBarItem alloc] initWithTitle:@"Third Tab" image:[UIImage imageNamed:@"third.png"] tag:2]; 
item4 = [[UITabBarItem alloc] initWithTitle:@"Fourth Tab" image:[UIImage imageNamed:@"fourth.png"] tag:3]; 
item5 = [[UITabBarItem alloc] initWithTitle:@"Fifth Tab" image:[UIImage imageNamed:@"fifth.png"] tag:4]; 
NSArray *items = [NSArray arrayWithObjects: item1,item2,item3,item4, item5, nil]; 
[tabBar setItems:items animated:NO]; 
[tabBar setSelectedItem:item1]; 
tabBar.delegate=self; 
[self.view addSubview:tabBar]; 

Нажмите код контроллера, нажав из пункта бара последней вкладки:

myViewController = [ [MyViewController alloc] initWithNibName:@"MyView" bundle:nil]; 
     myViewController.hidesBottomBarWhenPushed=NO; 
     [[self navigationController] pushViewController:myViewController animated:NO]; 

я не вижу нижнюю панель вкладок, когда я придерживаюсь своей текущей TableView к myViewController. Я вижу полный экран. Я хочу видеть нижнюю панель вкладок всегда, когда каждый элемент табуляции щелкнул. В чем может быть проблема? Может кто-нибудь, кто встретит эту проблему, поделитесь со мной своим предложением?

спасибо.

ответ

0

Вы сами используете TabBar (как вид) в качестве основного вида.

Использование UITabBarController так:

//tabBarController is defined in the interface (the .h file) 
tabBarController = [[UITabBarController alloc]init]; 

firstViewController = [[UIViewController alloc] init]; 
UITabBarItem *item1 = [[[UITabBarItem alloc]initWithTitle:@"First" image:nil tag:1] autorelease]; 
[firstViewController setTabBarItem:item2]; 

secondViewController = [[SecondViewController alloc]init]; 
UITabBarItem *item2 = [[[UITabBarItem alloc]initWithTitle:@"Sec" image:nil tag:1] autorelease]; 
[secondViewController setTabBarItem:item2]; 

//init the tab bar controller populated with two view controllers 
[tabBarController setViewControllers:[NSArray arrayWithObjects:firstViewController,secondViewController,nil] animated:NO]; 

[window addSubview:tabBarController.view]; 
+0

Является ли ваш код правильно? Я пробовал этот путь, но наблюдал две проблемы. Во-первых, TableView поражен, а не прокруткой. Во-вторых, как добавить элемент Tabbar, поскольку у меня есть только одно табличное представление и доступ к только одному табличному виду для всех трех элементов Tabbar, за исключением последнего элемента табуляции. – Getsy

+0

Привет, У меня есть TableView и программно добавляется TabBar в нижнем виде, когда я написал фактическое сообщение. Я вызываю тот же самый TableView при нажатии на три элемента Tabbar. Но для четвертого элемента Tabbar мне нужно нажать на другой viewcontroller. В этом случае мне нужно поддерживать Tabbar всегда в нижней части, но Tabbar удаляется при вызове pushViewController. Может ли кто-нибудь правильно вести меня? – Getsy

+1

проверить это: http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3124430053.03124430055, бесплатный курс для разработчиков iPhone из Стэнфордского университета, 7-я лекция - о панели вкладок. – medopal

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