swift - 妥善管理导航栏和标签栏
问题描述
该图显示了我的故事板,并按照指示进行了转场。
在 tabBar 的着陆视图控制器(即 I)中,tabBar 和 navBar 都是可见的,这是所需的。但是,如果(从 I)执行 segue 以转到另一个视图控制器(此处为 II),我只想要导航栏。我可以通过使用隐藏 tabBar
self.tabBarController?.tabBar.isHidden = true
接下来,我可以通过在开头添加导航控制器来达到预期的效果,如下所示。
此配置将在前面的视图控制器中添加一个导航栏(如启动屏幕),因此我必须在这些视图控制器中隐藏导航栏。
是否有其他不需要隐藏栏并达到预期效果的方法?
解决方案
您应该采用第一种方法。标签栏控制器具有隐藏底栏的默认属性。请参见下面的示例代码。
ViewController *viewController = [[ViewController alloc] init];
viewController.hidesBottomBarWhenPushed = YES; // This property needs to be set before pushing viewController to the navigationController's stack.
[self.navigationController pushViewController:viewController animated:YES];
这将在推送到任何子控制器时隐藏您的标签栏。
编辑
您还可以为您的标签栏控制器设置从情节提要中推送时的 hidesBottomBar,这样您就不必写下任何代码。
推荐阅读
- c# - WebAPI:从 System.Web.Http.Filters.ActionFilterAttribute 获取控制器对象
- amazon-web-services - 从 Amazon ML 访问 S3
- laravel - Laravel 验证应该失败,但会出现“超出范围”的 SQL 异常错误
- python - python中的llist索引超出范围
- reactjs - 数组中没有渲染元素 - ReactJS
- ios - 在目标 c 中填充一系列自定义模型崩溃
- typescript - 如何将对象列表映射到字典或地图?
- javascript - 从两个脚本中只有一个有效
- javascript - Vue.js Element Ui - 打开 el-dialog 时捕获/锁定焦点
- three.js - Forge 查看器中对象的 X、Y、Z 坐标