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

Swift 3 UIStatusBarStyle不适用于UINavigationController中的单独ViewControllers

Swift 3中的UIStatusBarStyle不适用于UINavigationController中的单独ViewControllers。在Swift 3中,UIStatusBarStyle已经被废弃,取而代之的是preferredStatusBarStyle属性。这个属性是UIViewController的一个方法,用于设置状态栏的样式。

在UINavigationController中,状态栏的样式由导航控制器的preferredStatusBarStyle属性决定。当导航控制器的根视图控制器(Root View Controller)设置了preferredStatusBarStyle属性后,导航控制器会自动应用该样式。但是,当导航控制器中的其他视图控制器(非根视图控制器)设置了preferredStatusBarStyle属性时,这些设置将被忽略。

为了在UINavigationController中的单独ViewControllers中设置状态栏样式,可以通过以下步骤实现:

  1. 在UINavigationController的子类中重写preferredStatusBarStyle属性,并返回所需的状态栏样式。例如:
代码语言:txt
复制
class CustomNavigationController: UINavigationController {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}
  1. 将需要自定义状态栏样式的视图控制器的父类设置为CustomNavigationController。例如:
代码语言:txt
复制
class MyViewController: UIViewController {
    // Your code here
}
  1. 在MyViewController中,设置导航栏的外观样式,以确保状态栏样式与导航栏一致。例如:
代码语言:txt
复制
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        navigationController?.navigationBar.barStyle = .black
    }
}

这样,你就可以在UINavigationController中的单独ViewControllers中自定义状态栏样式了。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,无法提供相关链接。但是,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。

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

相关·内容

Swift如何给应用添加3D Touch菜单

OneSwift – iOS Tips Based On Swift 今天为大家带来是给应用添加3D Touch菜单,这样可以方便用户在首页即可快速访问某些页面。...一、创建自定义3D Touch菜单 在AppDelegatedidFinishLaunchingWithOptions,我们添加下列代码,来实现按钮添加。...userInfo: nil) application.shortcutItems = [firstItem,firstItem1,firstItem2,firstItem3] 复制代码 其中按钮...3DTouch Xcode原生图标icon图样预览 二、为每个按钮添加响应事件 接着我们为每个按钮添加响应事件,因为我四个按钮刚好都到一个固定页面,所以响应事件实现页面的跳转即可。...后续将补充介绍如何自定义icon、如何在页面内实现3D Touch,欢迎关注OneSwift后续更新。

96520

iOS 自定义 ViewController 过渡动画

在上面链接视频里说到,一共有下面这四个地方可以用自定义过渡: Presentations and dismissals UITabBarController UINavigationController...我们只涉及第二种 UITabBarController 另外还有 Interactive view controller transitions 可交互过渡,例子就是在 NavigationController 详细页面从屏幕左侧滑入以返回时那个动画...扔了这么多东西不管好处就是,这篇文章里我们需要处理新东西就只有两个: // UITabBarControllerDelegate 这个方法,用于返回一个负责管理过渡动画 UIViewControllerAnimatedTransitioning...然后在 viewDidLoad 设置 TabBarController delegate ,这里我们设置成为 self TabBarController 代码如下: class MainVC: UITabBarController...let fromViewControllerIndex = find(self.tabBarController.viewControllers!

1.3K31

swift 2.0 与 OC 相比较,标签栏和导航栏书写差别

下面是swift书写时候两个方法,其实这里不是教大家怎么样写这个问题,我是想通过这两个不同语言进行一个比较,向大家找他们之间“想法”上一些相同点,这样子我们学习swift时候,就可以更加游刃有余...我们熟悉OC这门语言,找到他么想法上相同点了,你也就可以利用OC来学习swift了。...3"; UINavigationController * na2 = [[UINavigationController alloc]initWithRootViewController:home2...home3.tabBarItem.title=@"首页4"; UINavigationController * na3 = [[UINavigationController alloc]...initWithRootViewController:home3]; self.viewControllers=@[na,na1,na2,na3];  通过上面简单对比,希望你能看到他们思想上相同点

89870

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

,标题、返回按钮啥都方便加,这也就是说不隐藏导航栏,而是要单独让导航栏背景透明; 2、在导航栏透明与否界面间切换时透明度有渐变效果; 3、在UINavigationController体系和UITabarController...我们可以给 UINavigationController 创建一个类别,来给这个类添加一个方法,用于设置导航栏透明度: // UIViewController+Cloudox.m - (void)setNeedsNavigationBackground...这样每个 ViewController 都可以管理自己导航栏透明度,在这个新增属性setter方法,我们调用前面在在 UINavigationController Category 添加设置导航栏透明度方法...我们自己创建一个用于交换方法,这个方法,除了调用原方法外(注意由于方法名称对应实现已经交换了,这里我们目的是调用原实现,但是使用名称确实本方法自己名称),还添加一个处理,_updateInteractiveTransition...,我们可以在 UINavigationController Delegate 添加一个处理,监控松手后时自动完成返回还是取消返回操作,同时使用 UIView 动画(关于 UIView 动画可以看我这篇文章

3K40

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

控制器也是如此,用1个控制器去管理其他多个控制器 比如,用一个控制器A去管理3个控制器B、C、D 控制器A被称为控制器B、C、D“父控制器” 控制器B、C、D被称为控制器A“子控制器”...第一次显示出来自控制器; 2,addChildViewController:此方法是UIViewController方法,可以用来添加子控制器; 3,通过属性viewControllers进行设置...常见问题 导航条高度:44 UINavigationController保存子控制起形式:栈 获取UINavigationController下面的所有的子控制器:viewControllers /...UITabBarButton在UITabBar得位置是均分,UITabBar高度为49。 UITabBar结构⼤大致如下图所示: ?...:c1]; tb.viewControllers=@[c1,c2,c3,c4]; 注意:展示顺序和添加顺序一致,和导航控制器不同,展现在眼前是导航控制器根视图控制器也就是第一个添加到导航控制器上视图

1.3K40

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

概念 UINavigationController 继承于 UIViewController 包含:viewcontrollers、NavigationBar、Toolbar 导航控制器是一个堆栈结构,...@property(nonatomic,copy) NSArray *viewControllers; 例子: //将上面的这5个控制器添加到控制器数组...*barHideOnSwipeGestureRecognizer; 10、屏幕滑动时候是否隐藏导航栏,常用于tableView,上滑隐藏导航栏,下滑显示,带动画效果 @property (nonatomic...; (2)push时候隐藏底部栏,如push后隐藏tabbar @property(nonatomic) BOOL hidesBottomBarWhenPushed; (3)获取管理它导航控制器 @...*> *)viewControllers animated:(BOOL)animated; 3、管理视图控制器操作 (1)压入新视图控制器 - (void)pushViewController:(

2.1K60

UINavigationControllersetViewControllers方法

在iOS开发UINavigationController是很常用Controller,对它一般操作就像操作一个栈,push和pop。...但也经常会遇到pop和push无法优雅完成操作,比如退回到中间某个VC上,或者在第一个VC之前添加一个VC等,更甚者要重新构造整个VC顺序,这时候setViewControllers方法就排上用场了...,它使对VC栈操作不再局限于push和pop,而是构造整个VC栈并应用到当前UINavigationController,这个方法支持iOS3.0+,放心使用。...#Sample NSMutableArray * viewControllers = [self.navigationController.viewControllers mutableCopy]; [...item, this method uses a pop transition; 2.if it is the topmost item, no transition is performed. 3.

82620

解析 SwiftUI 两处由状态更新滞后引发严重 Bug

本文将解析 SwiftUI 两个由于未能贯彻响应式编程原则而导致严重错误,并提供相应解决方案。...原文发表在我博客 肘子Swift记事本视图变化在前、状态变化在后在 SwiftUI ,某些可编程控件在执行一定操作时,会先更新视图,待视图变化完成后再修改与其对应状态。...通过自定义返回按钮以及扩展 UINavigationController 方式,实现了在禁用 Back 按钮后仍支持手势返回,并先修改状态后再进行视图响应。...AttributeGraph 是 SwiftUI 用于维护众多数据源与视图之间依赖关系工具。...随着版本提高,SwiftUI 功能也确实得到了相当程度增加。不过,即使在最新版本,在一些对 UIKit(AppKit)进行二次包装控件,仍有不少细节处理不到位问题。

649110

iOS右滑返回实现(interactivePopGestureRecognizer)

I 、添加右滑返回手势 若项目有全局UINavigationController基类,给页面添加右滑返回手势 @implementation NavigationController - (void...2.1 UINavigationController (QMUI)进行控制右滑返回 QMUI使用分类UINavigationController (QMUI)方式进行控制右滑返回,具体核心代码如下 重写...viewDidLoad设置右滑返回手势代理为自身 ExtendImplementationOfVoidMethodWithoutArguments([UINavigationController...当 interactivePopGestureRecognizer.enabled = NO 或者当前UINavigationController堆栈viewControllers小于2时候此方法无效...在这里插入图片描述 see also iOS运行时API应用:1、实现路由(接口控制app跳任意界面 )2、获取修改对象成员属性3、动态添加/交换方法实现4、属性关联 https://kunnan.blog.csdn.net

3.1K20
领券