iOS UITabBarController在3.5英寸与4英寸显示器上

时间:2014-08-26 11:30:05

标签: ios iphone uitabbarcontroller

我的应用程序使用LoginViewControllerUIViewController)启动,检查用户是否已登录。如果用户已登录,则使用导航控制器推送taskViewController(UIViewController)其中有一个表视图。它显示任务列表。

当用户点击任务时,它会启动taskDetailsViewController(UIViewController),我在其中以编程方式添加UITabBarController

- (void)viewDidLoad
{
[super viewDidLoad];
 self.tabBarController = [[UITabBarController alloc] init];
 DetailsViewController *detailsViewController = [[DetailsViewController alloc] init];
 CommentsViewController *commentsViewController = [[CommentsViewController alloc] init];
 FilesViewController *filesViewController = [[FilesViewController alloc] init];
 NSArray* controllers = [NSArray arrayWithObjects:detailsViewController, commentsViewController, filesViewController, nil];

self.tabBarController.viewControllers = controllers;
self.tabBarController.selectedIndex = 0;

[self.view addSubview:self.tabBarController.view];
}

这在4英寸显示屏上工作正常,但在3.5英寸显示屏上,标签栏没有底部对齐,它们有点漂浮在底部。

我知道我在这里做错了什么?

         --------------------------------------------
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |------------------------------------------|
         |           |                |             |
         |   Details |   Comments     |   Files     |
         |           |                |             |
         |           |                |             |
         |------------------------------------------|
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         |                                          |
         --------------------------------------------

2 个答案:

答案 0 :(得分:0)

您需要设置布局约束。对于您的情况,最简单的方法是创建一个约束,将屏幕底部的距离设置为0.例如:

NSDictionary *viewsDictionary =
            NSDictionaryOfVariableBindings(self.tabBarController.view);
NSArray *constraints =
    [NSLayoutConstraint constraintsWithVisualFormat:@"V:[tabBar]-|"
                        options:0 metrics:nil views:viewsDictionary];
[self.view addConstraints:constraints];

这表示将标签栏视图垂直刷新到屏幕底部。

答案 1 :(得分:0)

通常,tabBarController可以用作rootViewController
要确定用户登录是否成功,请切换rootViewController = tabBarController