【问题标题】:iPhone:Tabbar hides when pushing from TableView to UIViewControlleriPhone:从 TableView 推送到 UIViewController 时,Tabbar 隐藏
【发布时间】:2010-05-05 14:13:45
【问题描述】:

我在一个标签栏中有四个标签栏项目,这是我拥有 TableView 的视图的底部。我不是通过 I.B. 以编程方式添加标签栏和项目(请参阅下面的代码)。 单击前三个 Tab bar 项,将在同一 TableView 本身中显示数据。但是单击最后一个选项卡栏项目将推送到另一个 UIViewcontroller 并在那里显示数据。这里的问题是,当我在点击最后一个标签栏项目时推送到 viewController 时,主“标签栏”被删除了。

标签条码:

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 时,我没有看到底部标签栏。我在那里看到全屏视图。当每个选项卡项单击时,我希望始终看到底部选项卡栏。 这里可能有什么问题?有人遇到这个问题,请分享您的建议给我吗?

谢谢。

【问题讨论】:

    标签: iphone


    【解决方案1】:

    您最初将 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];
    

    【讨论】:

    • 您的代码正确吗?我尝试过这种方式,但观察到两个问题。一是,TableView 被击中,而不是滚动。其次,我如何添加 Tabbar 项,因为我只有一个 tableview,并且对于所有三个 Tabbar 项单击只能访问一个 tableview,除了最后一个 tabbar 项。
    • 嗨,我有一个 TableView 并在底部视图中以编程方式添加 TabBar,正如我在实际发布消息中所写的那样。单击三个 Tabbar 项时,我正在调用相同的 TableView 本身。但是对于第四个 Tabbar 项目,我需要推送到另一个视图控制器。在这种情况下,我需要将 Tabbar 始终保持在底部,但是当调用 pushViewController 时 Tabbar 会被删除。有人可以正确指导我吗?
    • 查看这个:deimos3.apple.com/WebObjects/Core.woa/Browse/…,斯坦福大学的免费 iPhone 开发课程,第 7 讲是关于 Tab Bar。
    猜你喜欢
    • 2017-01-28
    • 2019-10-27
    • 2023-03-05
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多