我的应用程序使用LoginViewController
(UIViewController
)启动,检查用户是否已登录。如果用户已登录,则使用导航控制器推送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 |
| | | |
| | | |
|------------------------------------------|
| |
| |
| |
| |
| |
--------------------------------------------
答案 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