首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITabBarController - more按钮不显示

UITabBarController - more按钮不显示
EN

Stack Overflow用户
提问于 2013-03-13 18:48:24
回答 2查看 1.8K关注 0票数 1

我以编程方式创建TabBarController,因为我希望在每个选项卡中使用相同的控制器来显示不同的内容。内容由ID获取。我使用故事板id的方式与使用initWithNibName:的方式相同。

我在AppDelegate中这样做:

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];

    UITabBarController *tabBarController = [[UITabBarController alloc] init];

    for (int i = 0; i < 7; i++) {
        MyViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"MyView"];
        [svc setID: i];
        [tabBarController addChildViewController:svc];
    }

    [self.window makeKeyAndVisible];
    [self.window setRootViewController: tabBarController];

    return YES;
}

但是TabBar只显示了7个选项卡中的5个。这很好,因为同一时间只能看到5个选项卡。不幸的是。“更多”按钮不可见。所以最后两个选项卡是不可访问的。

有没有人知道如何强制More按钮显示,或者为什么它不显示?

致以问候!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-13 19:26:22

它没有显示出来,因为您正在使用addChildViewController方法向选项卡栏控制器添加视图控制器,该方法是一种UIViewController方法,而不是一种选项卡栏控制器方法。所以我认为发生的事情是标签栏控制器并不知道它有5个以上的视图控制器。

如果您希望显示更多的视图控制器,请直接设置选项卡栏控制器的viewControllers数组。将您的代码修改为如下所示:

代码语言:javascript
复制
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UITabBarController *tabBarController = [[UITabBarController alloc] init];  
NSMutableArray *vcArray = [NSMutableArray array]; 
for (int i = 0; i < 7; i++) {
    ViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"MyView"];
    [svc setID: i];
    [vcArray addObject:svc];
}
[tabBarController setViewControllers:vcArray]; //This is the important part.
[self.window setRootViewController: tabBarController];
[self.window makeKeyAndVisible];
票数 1
EN

Stack Overflow用户

发布于 2013-03-13 18:59:51

以下是如何使用UITabBarController的简单示例

首先在AppDelegate.h文件中创建UIViewControllerUINavigationController的所有对象,并使用AppDelegate.m的以下方法

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds ]];

    self.viewCon=[[ViewController alloc] init];
    self.navCon=[[UINavigationController alloc] initWithRootViewController:self.viewCon];
    self.navCon.navigationBar.tintColor=[UIColor blackColor];
    self.viewCon.title=@"First View";

    self.fView=[[FirstViewController alloc] init];
    self.FnavCon=[[UINavigationController alloc] initWithRootViewController:self.fView];
    self.FnavCon.navigationBar.tintColor=[UIColor blackColor];

    self.fView.title=@"Secound View";

    self.sView=[[SecoundViewController alloc] init];
    self.SnavCon=[[UINavigationController alloc] initWithRootViewController:self.sView];
    self.SnavCon.navigationBar.tintColor=[UIColor blackColor];
    self.sView.title=@"Third View";
    .
    .
    // create UIViewController and UINavigationController As you need 
    .
    .
    .
    UIImage *img1=[UIImage imageNamed:@"Australia.gif"];
    self.tbItem1=[[UITabBarItem alloc] initWithTitle:@"First Page" image:img1 tag:1];
    self.viewCon.tabBarItem=self.tbItem1;

    UIImage *img2=[UIImage imageNamed:@"Cameroon.gif"];
    self.tbItem2=[[UITabBarItem alloc] initWithTitle:@"Secound Page" image:img2 tag:2];
    self.fView.tabBarItem=self.tbItem2;

    UIImage *img3=[UIImage imageNamed:@"Canada.png"];
    self.tbItem3=[[UITabBarItem alloc] initWithTitle:@"Third Page" image:img3 tag:3];
    self.sView.tabBarItem=self.tbItem3;

    NSMutableArray *viewArr=[[NSMutableArray alloc] init];
    [viewArr addObject:self.navCon];
    [viewArr addObject:self.FnavCon];
    [viewArr addObject:self.SnavCon];


    self.tbCon=[[UITabBarController alloc] init];
    self.tbCon.viewControllers=viewArr;

    [self.window addSubview:tbCon.view];

    [self.window makeKeyAndVisible];

    return YES;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15383160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档