繁体   English   中英

在故事板中的tabbar下添加一个视图

[英]add a view under tabbar in storyboard

我想知道是否有一种方法(最好是一个简单的方法)在标签栏下添加一个视图,如附图中所示,这样当我在标签之间切换和按下/弹出新的视图控制器时,它就会停留在那里每个标签。

我将UITabBarController子类化为“MainTabController”,并将其设置为我的故事板中主标签栏控制器场景的自定义类。 然后在MainTabController的viewDidLoad中,我移动tabBar并添加红色子视图。 到目前为止这么好,但主视图区域大小仍然像以前一样,底部的标签栏,所以现在表格的最后几个元素保持在标签栏下方。

我非常希望避免调整我推入任何一个选项卡的每个控制器的帧大小,所以我希望有一个我不知道的更简单的解决方案。

应该是什么样子

您可以通过将标签栏控制器嵌入自定义容器控制器中来完成此操作。 您可以通过将UIViewController设置为初始视图控制器并向其添加容器视图来在故事板中执行此操作。 调整容器视图的大小,使其在下方具有您需要的任何空间,并在该空间中添加视图。 删除自动嵌入容器视图中的视图控制器,并控制从容器视图拖动到选项卡栏控制器,然后选择“嵌入”。

在此输入图像描述

请注意,标签栏控制器在iOS 7中布局视图的方式存在错误。如果您将视图放在其中一个控制器的底部附近,它将在您第一次看到它时出现,但在标签栏下向下移动当您选择另一个选项卡然后再次返回时(如果您旋转到横向然后再返回,它将重新出现)。 您可以通过使容器视图控制器(我的故事板中的初始控制器)成为选项卡栏控制器的委托并添加此代码来解决此错误。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { // called by the embed segue
    UITabBarController *tbc = segue.destinationViewController;
    tbc.delegate = self;
}


-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
    [tabBarController.view setNeedsLayout];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM