首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从UIViewController导航到UITabBarController make double NavigationBar

从UIViewController导航到UITabBarController时,可以通过以下步骤实现双重导航栏:

  1. 创建一个UIViewController,并设置其为导航控制器的根视图控制器。
  2. 在根视图控制器中,创建一个UITabBarController,并将其设置为根视图控制器的子视图控制器。
  3. 在UITabBarController中,创建多个子视图控制器,并将它们添加到UITabBarController的viewControllers数组中。
  4. 在根视图控制器中,设置导航栏的隐藏属性为false,以显示导航栏。
  5. 在根视图控制器中,将UITabBarController的视图添加到导航控制器的视图中。

下面是一个示例代码:

代码语言:txt
复制
// 在根视图控制器中创建导航控制器
let navigationController = UINavigationController(rootViewController: rootViewController)

// 在根视图控制器中创建UITabBarController
let tabBarController = UITabBarController()

// 创建多个子视图控制器
let viewController1 = UIViewController()
let viewController2 = UIViewController()

// 将子视图控制器添加到UITabBarController的viewControllers数组中
tabBarController.viewControllers = [viewController1, viewController2]

// 设置导航栏的隐藏属性为false
navigationController.navigationBar.isHidden = false

// 将UITabBarController的视图添加到导航控制器的视图中
navigationController.view.addSubview(tabBarController.view)

这样,你就可以实现从UIViewController导航到UITabBarController,并在导航栏和标签栏之间拥有双重导航栏的效果。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,建议你参考腾讯云官方文档或咨询腾讯云的客服人员,以获取最新的产品信息和链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Cocoa编程中视图控制器与视图类详解

进度与活动: UIActivityIndicatorView UIProgressView  控制器类 UIViewController类       UIViewController负责创建其管理的视图及在低内存的时候将它们内存中移除...语法上 说,UIViewController是视图控制器的父类。视图控制器类是没有可视化表示的抽象类,只有它管理的视图才提供可视画布。记住:1....使用pushViewController: animated:可推入一个新的控制器,从而增加新的项导航栈。(记住:导航栏控制器不添加一个视图进去,这个导航栏是没有意义的!)...,然后添加此视图控制器导航栏并予以显示 UIViewController *aView = [[UIViewController alloc] initWithNibName:(*xib文件名*)]...导航栏可以通过直接访问navigationBar属性,改变栏的风格或者它的颜色: C代码   self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent

5K50

iOS多控制器之UINavigationController&UITableBarController1. 多控制器2. UINavigationController3. UITableBarCont

*mainController = [[UIViewController alloc] init]; // 创建导航控制器,同时给它指定一个根控制器 UINavigationController...imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; navigationController 和navigationItem都是通过"控制器"对象调用的 navigationBar...是通过"导航控制器"对象调用的 如果想改变导航条整体的样式 那么应该找 navigationbBar 如果想改变导航条上内容找 navigationItem 3....UITableBarController UITabBarController和UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换...Paste_Image.png 7.2.3 往UITabBarController中添加子控制器 有两种方法UITabBarController中添加子控制器 : [tb addChildViewController

1.2K40

iOS透明导航栏的平滑过渡(进阶版)引实现过程结

,感兴趣的可以打开手机QQ个人界面看一看,效果很赞。...同时,我们虽然说QQ做的很好,但也依然有一些不足,多把玩一下导航栏过渡的过程就会发现,如果准备透明导航栏返回时又决定不反回了,还是停留在导航栏透明的界面,这时候导航栏虽然会回到透明,但会有一个导航栏闪现一下的小瑕疵...,下面这种方法是比较好的方法: // 对导航栏下面那条线做处理 self.navigationBar.clipsToBounds = alpha == 0.0; 当我们对导航栏的透明度设为 0 时,就会隐藏细线...,导航栏的透明度是直接跳变的: 而我们想要的是像QQ一样完全透明不透明之间有一个随着滑动手势变化的透明度渐变效果,这样是最好的转场效果了。...:(UINavigationBar *)navigationBar didPushItem:(UINavigationItem *)item { // push一个新界面 [self

2.9K40

iOS小技能:适配安全区域距离(safeAreaInsets)

引言 应用场景1:自定义导航栏内容,导航栏显示公告和标题 应用场景2:自定义视图底部工具栏 应用场景3: 适配上拉加载更多控件 _vcView.tableView.mj_footer.ignoredScrollViewContentInsetBottom...但是如果一个view没有在视图层次结构中或未在屏幕上显示, 则safeAreaInsets为0; 1.1 问题 视图底部工具栏显示安全区域之外 1.2 判断安全区域距离 #define isIphoneX...CGFloat navHeight = self.navigationController.navigationBar.frame.size.height; NSLog(@"导航栏高度:%f",navHeight...; NSLog(@"tabBar高度:%f",tabBarHeight); //2.在非tabBarController中使用 UITabBarController *tabBarVC = [[UITabBarController...bottom : 0; 适配之后的效果 如果是第三方库建议升级最新版本,比如我把MJRefresh3.1.16升级至3.7.5 pod 'MJRefresh' , '3.7.5' ->

3.4K30

VCTransitionsLibrary –自定义iOS交互式转场动画的库

CocoaPods 安装 pod "VCTransitionsLibrary" 手动安装 把文件 AnimationControllers 和 InteractionControllers 文件夹下所有代码复制工程中即可...交互控制器 – 这个类是用来管理交互的-那些通常由某个手势空控制的交互,允许用户通过滑动,轻扫或执行其他操作来实现两个视图控制器的导航.必须指出的是,交互控制器允许导航取消,例如,一个用户可以在正在导航至某一页面时...为了给动画一个合适的方向,你可以比较两个视图控制器的索引: - (id )tabBarController:(UITabBarController...交互控制器负责给视图添加手势,并负责在用户使用某个手势时进行相应地导航操作....*)context { if ([keyPath isEqualToString:@"selectedViewController"] ) { // 把交互控制器绑定视图控制器上

1.5K60

iOS系统中导航栏的转场解决方案与最佳实践

Use other methods to make appropriate changes....举个例子来说,当 A 页面 push B 页面的时候,转场库会保存 A 页面的导航栏样式,当 pop 回去后就会还原成以前的样式,因此我们不用考虑 pop 后导航栏样式会改变的情况,同时我们也不必考虑...大方向上来看,美团使用的是前面所说的第三种方案,不过它也有一些自己独特的地方,为了更好的让大家理解整个过程,我们设计这样一个场景,页面 A push 页面 B,结合之前探讨过的方法调用顺序,我们可以知道几个核心方法的调用顺序大致如下...等到页面 B 调用 viewDidAppear: 的时候,转场库会将假的导航栏样式设置真的导航栏中,并将假的导航视图层级中移除,最终将真的导航栏显示出来。...等到页面 A 调用 viewDidAppear: 的时候,转场库会将假的导航栏样式设置真的导航栏中,并将假的导航视图层级中移除,最终将真的导航栏显示出来。

2.3K30

# iOS导航栏控制Tips

许久不写UI,对UI的很多东西都生疏了,最近使用导航栏的各种场景做一些总结。 1.导航栏的显示与隐藏 导航栏的显示与隐藏,分两种情况: 1.从不显示导航栏的页面push显示导航栏的页面。...2.显示导航栏的页面Push不显示导航栏的页面。 注意: 1.如果导航栏不显示时,系统的侧滑返回功能无效。...针对以上两种情况分别处理,整个Push过程都假设是A页面跳转到B页面 1.1 从不显示导航栏的页面Push显示导航栏的页面。 关于导航栏的显示,是否顺滑,是通过如下两个方法来控制。...viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO animated:YES]; } 1.2 显示导航栏的页面跳转到不显示导航栏的页面...,在这里重写了 - (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item

1.7K31

玩转iOS转场动画 原

本篇博客主要深入讨论视图控制器、导航控制器来进行界面跳转时的专场动画相关内容。...完成动画 [transitionContext completeTransition:YES]; }]; } 上面我们实现了一个简单的自定义转场动画,将present动画修改成了右侧滑入...我们在使用系统的导航控制器时,右划返回效果对用户体验十分友好,我们下面就来试着将视图控制器的模态跳转设计成类似导航可交互的。    ...三、导航转场动画的自定义     导航转场动画的原理与模态跳转转场动画的原理基本是一致的,不同的我们需要设置UINavigationController实例的delegate为遵守UINavigationControllerDelegate...四、UITabBarController的转场动画     UITabbar也可以进行转场动画的自定义,需要设置UITabBarController的delegate并实现协议中的如下两个函数: //设置非交互的转场动画

1.3K50

iOS导航栏切换界面时隐藏和显示

引 现如今很多App的一些模块,尤其是个人中心模块,界面设计已经习惯于不保留导航栏,而是直接将界面背景覆盖状态栏,比如QQ的个人信息界面: 没有传统的导航栏之后会好看很多,但是回到或者去往别的页面时...本文只讲最简单的实现方式,在单纯的UINavigationController下是表现ok的,但是如果同时还涉及UITabbarController,就会有一些瑕疵,下面是要实现的效果,可以观察一下瑕疵在哪...这个方法是直接隐藏了整个导航栏,所以如果要保存导航栏的一些返回按钮以及其他自定义的按钮,就需要自己在界面上去模拟添加,如果不想这么麻烦,也可以不隐藏导航栏,而是将导航栏的背景视图设为透明的: [...self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault...]; self.navigationController.navigationBar.shadowImage = [UIImage new]; 但是在切换到要显示导航栏的界面时,我们还需要将透明的导航栏背景还原回来

3.8K30

UINavigationController

// 清空导航条背景图片,系统判断当前是否为Nil,如果为nil,系统还是会自动生成一张背景图片 [self.navigationController.navigationBar setBackgroundImage...:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar...destinationViewController; Segue的类型 根据Segue的执行(跳转)时刻,Segue可以分为2大类型 自动型:点击某个控件后(比如按钮),自动执行Segue,自动完成界面跳转 按住Control键,直接控件拖线目标控制器...如果点击某个控件后,不需要做任何判断,一定要跳转到下一个界面,建议使用“自动型Segue” 手动型:需要通过写代码手动执行Segue,才能完成界面跳转 按住Control键,从来源控制器拖线目标控制器...destinationViewController展示出来 Modal 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展示出来 Modal的默认效果:新控制器屏幕的最底部往上钻

1.3K60

Container ViewController自定义转场控制器。

看到设计稿的时候,并不是普通的树形标签导航的样子。大致效果如FaceU的主页: ? 布局类似,但是功能有点不一样: 顶部左侧的按钮点击后会出现个人中心页。...最爱UITabBarController+UINavgationController的CP组合好像失效的。难道只能用present来实现么。...这两个色块就代表前言中顶部的左右按钮,点击左边的色块会左边弹出一个控制器,右边的同理。 ? 第二步,实现弹出控制器: 现在我们给左右按钮addTarget。...这,大致的实现逻辑都已经讲明了。只是代码有点乱。如果要再项目中使用,第一个ViewController就相当于我们的主页,然后再主页里写这些逻辑就会把主页弄的很臃肿。...所以我们其实可可以相UITabbarController一样,写一个控制器,然后传入需要的UIViewController数组,就可以实现。这样使用起来也方便,维护也简单。

69610
领券