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

如何以编程方式显示带有导航栏的ViewController?

要以编程方式显示带有导航栏的ViewController,可以按照以下步骤进行操作:

  1. 导入相关的库和头文件:
代码语言:txt
复制
import UIKit
  1. 创建一个继承自UIViewController的类,并设置其导航栏标题:
代码语言:txt
复制
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "My View Controller"
    }
}
  1. 在需要显示该ViewController的地方,创建一个UINavigationController,并将MyViewController作为其根视图控制器:
代码语言:txt
复制
let myViewController = MyViewController()
let navigationController = UINavigationController(rootViewController: myViewController)
  1. 可以对导航栏进行一些自定义设置,例如设置导航栏的背景颜色、标题颜色等:
代码语言:txt
复制
navigationController.navigationBar.barTintColor = UIColor.blue
navigationController.navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
  1. 最后,将navigationController设置为当前的根视图控制器,以显示带有导航栏的ViewController:
代码语言:txt
复制
UIApplication.shared.keyWindow?.rootViewController = navigationController

这样,就可以通过编程方式显示带有导航栏的ViewController了。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),腾讯云移动推送(TPNS)

腾讯云移动应用分析(MTA)是一款用于移动应用数据分析的产品,可以帮助开发者深入了解用户行为、应用性能等方面的数据,从而优化应用的用户体验和运营策略。了解更多信息,请访问:腾讯云移动应用分析(MTA)

腾讯云移动推送(TPNS)是一款用于移动应用消息推送的产品,可以帮助开发者实现高效、准确的消息推送,提升应用的用户参与度和活跃度。了解更多信息,请访问:腾讯云移动推送(TPNS)

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

相关·内容

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

导航栏的样式变化 对于不同 ViewController 之间的导航栏样式变化,大多可以总结为两种情况: 导航栏的显示与否 导航栏的颜色变化 导航栏的显示与否 对于显示与否的问题,可以在上一节提到的两个方法里调用...:animated: 的效果是一样的,直接使用 setNavigationBarHidden: 会造成导航栏转场过程中的闪现、背景错乱等问题,这一现象在使用手势驱动转场的场景中十分常见,所以正确的方式是使用带有...如果我们使用了一个带有透明效果的图片且导航栏的 translucent 效果为 NO 的话,那么系统会在这个带有透明效果的图片背后,添加一个不透明的纯色图片用于整体效果的合成。...在转场的过程中隐藏原有的导航栏并添加假的 NavigationBar,当转场结束后删除假的 NavigationBar 并恢复原有的导航栏,这一过程可以通过 Swizzle 的方式完成,而每个 ViewController...转场动画与导航栏隐藏动画的一致性 如果在转场的过程中还会显示或者隐藏导航栏的话,请保证两个方法的动画参数一致。

2.4K30

UINavigationController 导航控制器概念属性方法

*barHideOnSwipeGestureRecognizer; 10、屏幕滑动的时候是否隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...; 13、敲击屏幕可以隐藏与显示导航栏 @property (nonatomic, readwrite, assign) BOOL hidesBarsOnTap; 14、获取敲击屏幕的手势 @property...的时候隐藏底部栏,如push后隐藏tabbar @property(nonatomic) BOOL hidesBottomBarWhenPushed; (3)获取管理它的导航控制器 @property(...(1)通过一个自定义的导航栏和工具栏创建导航控制器 - (instancetype)initWithNavigationBarClass:(nullable Class)navigationBarClass...toolbarClass:(nullable Class)toolbarClass; (2)使用系统默认的导航栏和工具栏,创建一个导航控制器同时设置一个根视图控制器 - (instancetype)initWithRootViewController

2.2K60
  • UI篇-UINavigationController之易忘补充

    一个箭头后面带有文字的返回是使用的ios 自带的backBarButtonItem  ,显示的字体文字是push之前的山层页面的 title  ,如果希望文字是自定义的,需要在push 之前   self.navigationItem.backBarButtonItem...navigationItem navigationItem是UIViewController的一个属性,包含了当前页面导航栏上需要显示的全部信息,这个属性是为UINavigationController...,然后包含的navigationbar形成整个nv的导航栏。...navigationItem包含了bar视图的全部元素(如title,tileview,backBarButtonItem等),受当前viewcontroller管理,即bar形成整个nv的导航视图,然后每个...通过设置 self.navigationController.toolbarHidden = NO来显示工具栏,工具栏中的内容可以通过viewController的toolbarItems来设置,显示的顺序和设置的

    2.2K20

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

    设置导航栏的按钮并不是去设置导航栏本身。一切都是在被推入的UIViewController子类内部执行推入请求和相关导航栏的定制(如:右键按钮)。...其描述了导航栏上显示的内容,而正好UIViewController另有一导航项属性navigationItem包括左栏按钮(leftBarButtonItem)、右栏按钮(rightBarButtonItem...)和栏标题(title)、用于显示标题的视图(titleView),以及用于从当前视图向后导航的Back按钮(backBarButtonItem)和隐藏后退按钮(hidesBackButton)。...注意:对于导航栏定制,对定制实际标题的最简单方式时使用子视图控制器而不是导航项的title属性: C代码   self.title = @"Hello";   self.title = [[[NSBundle...选项卡类的方便之处就是不需要象导航栏那样以栈的方式推入和弹出视图的操作,而是组建一系列的控制器(它们各自可以是UIViewController、UINavigationController、UITableViewController

    5.1K50

    # iOS导航栏控制Tips

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

    1.7K31

    iOS开发UINavigation系列四——导航控制器UINavigationController

    controller的管理         导航控制器是一个堆栈结构,只是其中管理的对象是controller,通过push与pop进行controller的切换,我们有两种方式可以创建导航控制器: /.../通过一个自定义的导航栏和工具栏创建导航控制器 - (instancetype)initWithNavigationBarClass:(nullable Class)navigationBarClass...; //屏幕滑动的时候隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic, readwrite, assign) BOOL hidesBarsOnSwipe...; //横屏的时候隐藏导航栏 @property (nonatomic, readwrite, assign) BOOL hidesBarsWhenVerticallyCompact; //敲击屏幕可以隐藏与显示导航栏...; //push的时候隐藏底部栏,如push后隐藏tabbar @property(nonatomic) BOOL hidesBottomBarWhenPushed; //管理它的导航控制器 @property

    1.8K20

    【IOS开发基础系列】Navigation页面导航专题

    ,即不是使用push方式加载子VC,而是通过AddChildViewController的方式添加的场景,则父级导航条会覆盖在子级导航条上面,所以需要在载入时把父级导航条做隐藏处理: 1.2 navigationItem...: UIBarMetricsDefault]; 2.5 常见开发问题 2.5.1 tableView被导航栏遮挡 IOS开发---菜鸟学习之路--(二十四)-iOS7View被导航栏遮挡问题的解决 http...    方法一:(自定义视图的方法,一般人也会采用这样的方式)         就是在导航向上添加一个titleView,可以使用一个label,再设置label的背景颜色透明,字体什么的设置就很简单了...2.5.8 Tabbar的显示与隐藏 Tabbar的隐藏函数,其实只在Nav Push的之前调用时起作用 //隐藏Tabbar [viewController setHidesBottomBarWhenPushed...: NO]; } return [super popToViewController: viewController animated: animated]; 3 参考链接 自定义iOS 7 导航栏背景

    45520

    iOS 知识小集(Status Bar变换)

    背景 iOS 中经常会有需要在某个界面改变状态栏颜色或者某个界面隐藏状态栏的需求。而改变状态栏颜色和控制状态栏显示和隐藏的API,在iOS 的不同版本中也发生了很多变化。...API iOS 7 ~iOS 9 从iOS 7开始系统风格大变样,图标扁平了,状态栏也不在闹独立了。因为状态栏的会受到导航栏或者View背景色的影响,所以状态栏的风格也需要实时调整了。...想要改变状态栏的样式,想要控制状态栏的显示与隐藏,该怎么做呢? ** 1....效果gif iOS 9 之后 如上面第二张图所示,UIApplication的控制状态栏的方法,在iOS 9之后被弃用了。 所以iOS 9之后尽量使用重写ViewController方法的方式吧。...注意点 ** 情形一 ** 如果我们使用UINavigationController,会发现在原来的ViewController里修改状态栏的style不起作用了,但是控制状态栏的显示和隐藏依然OK。

    1.3K21

    03_iOS导航栏的正确隐藏方式

    简介 在项目中经常碰到首页顶部是无限轮播,需要靠最上面显示.有的设置导航栏为透明等一系列的方法,这个可以借助第三方.或者干脆简单粗暴的直接隐藏掉导航栏.可是push到下一个页面的时候是需要导航栏的,如何做了...第一种做法 注意这里一定要用动画的方式隐藏导航栏,这样在使用滑动返回手势的时候效果最好,和上面动图一致.这样做有一个缺点就是在切换tabBar的时候有一个导航栏向上消失的动画. - (void)viewWillAppear...,实现代理方法,在将要显示控制器中设置导航栏隐藏和显示,使用这种方式不仅完美切合滑动返回手势,同时也解决了切换tabBar的时候,导航栏动态隐藏的问题。...最后要记得在控制器销毁的时候把导航栏的代理设置为nil。...animated:(BOOL)animated { // 判断要显示的控制器是否是自己 BOOL isShowHomePage = [viewController isKindOfClass

    1.3K20

    【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏中的基本文本和button以及各种跳跃

    大家好,又见面了,我是全栈君 (1)navigationBar导航栏可以被看作是self.navigationController一个属性导航控制器,它可以由点直接表示self.navigationController.navigationBar...(4)最重要的可能是给navigationItem设置左右两边的button,一般默认的在左边有“返回”。在右边的有“摄像头”(如微信朋友圈)。...我们当然也能够利用自己创建的导航条button来覆盖原来导航控制器产生的默认的button,如“<Back”。 相同。...,在状态栏下方显示 //clipsToBounds就是把多余的图片裁剪掉 self.navigationController.navigationBar.clipsToBounds=YES...,所谓跳转,事实上就是往导航控制器栈中PUSH或者POP一个视图控制器,这样在最上面的视图控制器就变了,这样视图也跟着变了,由于仅仅显示在栈顶得那个视图控制器的视图 //所以(1)控制所谓的跳转

    2.4K10

    View Controller编程指南

    容器ViewController收集来自其他ViewController(称为子ViewController)的信息并以便于导航的方式呈现或以不同方式呈现这些ViewController的内容。...例如,UINavigationController对象显示来自子ViewController的内容以及由导航控制器管理的导航栏和可选工具栏。...这些关系形成ViewController层次结构的一部分,并且是在运行时定位其他ViewController的一种方式。...当涉及容器ViewController时,UIKit可能会修改链来简化您必须编写的代码。不同的演示风格对于它们在屏幕上的显示方式有不同的规则 - 例如,全屏显示总是覆盖整个屏幕。...大多数系统ViewController是为特定任务而设计的 某些ViewController提供对用户数据(如联系人)的访问。 其他人可能提供访问硬件或提供专门调整的界面来管理媒体。

    1.3K20

    XCode4.2.1 使用NavigationController实现View切换

    XCode4.2.1 使用NavigationController实现View切换 现在网上有很多关于NavigationController实现页面之间导航,但是大部分都是老版本的实现方式,基于Window...老版本实现的NavigationController项目源代码 ?...但是新版的没有这个模板比如Single view application的项目直接生存ViewController不带Window和 mainWindow.xib文件 ?...加入代码后显示的界面就会出现导航栏了 如果要设置导航栏标题的内容,只需修改ViewController.m,你第一个载入的rootViewController ? 运行的效果 ? ?...第二view上面导航按钮返回上一个view的功能不需要使用代码实现,当然写代码也可以,参考代码如下 ? 希望对刚刚学习iphone开发的有所帮助,我也是刚刚开始学习。一起学习一起进步。

    62480

    iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究

    导航栏左上角的back按钮是附着在UINavigationController的UINavigationBar里自带的一个返回按钮,导航栏自带的back按钮的图层结构如下图所示。...back按钮   在了解导航栏的返回按钮之前,我们先了解一下导航栏管理导航栏上各类控件的UINavigationBar。...原生的导航条上的返回(back)按钮,一般是显示一个返回箭头+上一页面的标题(或者是 返回箭头+Back),如下图右边所示。 ?...他们都属于UINavigationItem的组成部分,都显示在navigationBar上,都属于UIBarButtonItem类,所以我给他们取名为导航条上的按钮三兄弟,哈哈哈。。。   ...对于导航栏上的按钮三兄弟,我们在3个类下面都能发现他们,比如当前在一个UIViewController内,输入以下方法都能发现他们。

    6.9K60

    iOS 原生和H5混合开发总结

    3.原生页面的导航栏标题可以取H5的title // 监听title [self.webView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew...if ([keyPath isEqualToString:@"title"] && object == self.webView) { } } 4.有的页面可能导航栏颜色不一样...,可以根据H5的文件名来判断显示不同的颜色。...所以后来采用和js交互的方式进行跳转 2.iOS给JS提供了一个页面返回的方法,但是在测试过程中发现,这个方法会无限调用,导致页面一直pop; 调用的结果是因为iOS这边使用了一个通用的页面,比如两个页面一个页面是...ViewController1,跳转到下一个页面ViewController2,这两个ViewController其实都是一个通用H5Controller的,初始化的时候都注册了handleBack方法

    2.2K20

    大前端开发中的路由管理之四:iOS篇

    ,UITabBarController         其中,容器类ViewController是这篇文章关注的重点,因为他们管理着View的显示逻辑。         ...同时UINavigationController还持有屏幕上方的交互栏(navigationBar)和屏幕下方的工具栏(toolBar),并控制他们是否可见。         ...:vc2 completion:nil]; 3.3 自定义转场方式的页面切换         上述的ViewController的转场方式是比较通用的方式,也许你会注意到,他还会收取一个animated...4、总结         多层级页面的管理由ViewController运营,同时包含有各种的view controller 分类结构来完成复杂的页面跳转或是实现不同的页面功能,如展示类ViewController...容器类控制器会根据添加的member value来决定是否需要留存之前的状态,会保存带有restorationIdentifier的所有ViewController的状态。

    1.9K40

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

    引 如我在传送门:iOS导航栏切换界面时隐藏和显示中所说,现在很多App的个人中心模块都是不保留导航栏的,会直接使导航栏透明,比如做的很好的QQ个人信息界面: 为什么说QQ做的很好呢?...而很多App的做法其实比较粗糙,类似于我在传送门:iOS导航栏切换界面时隐藏和显示中的做法,需要导航栏透明时,直接将导航栏隐藏起来。...这两个矛盾没有想到可以调和的手段,除非在业务上就不显示Tabbar了,但始终不是长久之计。...这样每个 ViewController 都可以管理自己的导航栏透明度,在这个新增属性的setter方法中,我们调用前面在在 UINavigationController 的Category 中添加的设置导航栏透明度的方法...ViewController 添加一个导航栏透明度属性是多么有意义,这里就可以直接调用了,当然,要记得导入我们的Category: // 交换的方法,监控滑动手势 - (void)et__updateInteractiveTransition

    3.1K40

    iOS开发常用之网络

    会自动将collection view处理完善,并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理。...LTNavigationBar - LTNavigationBar为导航栏添加动态着色效果,可自定义其背景色.Demo包含:1。变换背景色; 2。滚动视图,导航栏和状态栏重叠。...一个用于统一管理导航栏转场以及当推或者弹出的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。...BubbleTransition - 以气泡膨胀和缩小的动画效果来显示和移除控制器,Uber的就是这种取消操作的方式。...JWAnimatedImage.swift - JWAnimatedImage.swift集中了目前主流的GIF显示库(如FLAnimatedImage,Gifu等)的优点,进行重构,代码短小精悍。

    23.7K10

    苹果系统自带滑动返回功能

    https://blog.csdn.net/u010105969/article/details/51250731 之前在iOS开发中在利用导航栏进行页面跳转的时候并没有注意到苹果自带的侧滑返回手势...究其原因是因为我们在使用了自己的返回按钮的时候苹果自带的侧滑返回功能就被覆盖了。如果我们想要使用苹果自带的侧滑返回手势,我们还是可以让它恢复的。 步骤: 1....我们在使用导航控制器的时候要继承自系统的导航控制器。 2. 导航控制器要遵守协议: 3....:(UIViewController *)viewController animated:(BOOL)animated 4....协议中方法的具体实现:if (viewController == self.viewControllers[0] ) {   // 如果显示的是根视图控制器         self.interactivePopGestureRecognizer.delegate

    2.4K20
    领券