【iOS】状态栏颜色和pop手势

2024-09-01 23:18
文章标签 ios 颜色 手势 状态栏 pop

本文主要是介绍【iOS】状态栏颜色和pop手势,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

说明

  • UINavigationController 管理状态栏颜色,需要转发给单个控制器
class NavController: UINavigationController {override func viewDidLoad() {super.viewDidLoad()}override var preferredStatusBarStyle: UIStatusBarStyle {let top = visibleViewControllerreturn top?.preferredStatusBarStyle ?? super.preferredStatusBarStyle}
}

隐藏导航栏手势问题


class ViewController: UIViewController, UIGestureRecognizerDelegate {var pp: Any?private lazy var button: UIButton = {let btn = UIButton()btn.backgroundColor = .redbtn.addTarget(self, action: #selector(test), for: .touchUpInside)return btn}()override func viewDidLoad() {super.viewDidLoad()view.backgroundColor = .whiteview.addSubview(button)button.frame = CGRect(x: 100, y: 200, width: 44, height: 44)self.navigationController?.setNavigationBarHidden(true, animated: false)let count = navigationController?.viewControllers.count ?? 0button.setTitle("\(count)", for: .normal)pp = navigationController?.interactivePopGestureRecognizer?.delegate}override func viewDidAppear(_ animated: Bool) {super.viewDidAppear(animated)let count = navigationController?.viewControllers.count ?? 0if count > 1 {print("self-delegate")navigationController?.interactivePopGestureRecognizer?.delegate = self} else {print("nil-delegate")navigationController?.interactivePopGestureRecognizer?.delegate = pp as? UIGestureRecognizerDelegate}}@objc func test() {let controller = ViewController()navigationController?.pushViewController(controller, animated: true)}override var prefersStatusBarHidden: Bool {return false}override var preferredStatusBarStyle: UIStatusBarStyle {print("\(#function)")guard let nav = navigationController else {print("1")return .default}if nav.viewControllers.count % 2 == 0 {print("2")return .darkContent}print("3")return .lightContent}
}

这篇关于【iOS】状态栏颜色和pop手势的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128330

相关文章

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

渐变颜色填充

GradientFill函数可以对特定的矩形区域或者三角形区域进行渐变颜色的填充。我们先来看看GradientFill函数到底长得什么样子,帅不帅。 [cpp]  view plain copy print ? BOOL GradientFill(     _In_  HDC hdc,     _In_  PTRIVERTEX pVertex,     _In_  ULONG

MongoDB学习—(5)修改器$inc,$unset,$push,$pushAll,$allToSet,$pop,$pull,$pullAll

通过db.help()可以查询到关于数据库的操作,一查询发现有很多方法 其中有一个方法为db.getCollection(cname),即通过这一个函数,传入数据库中的一个集合的名称来获取到该集合的一个对象,我们可以编写函数   function insertTenRecord(obj){ var i=0; while(i++<10){ obj.insert({id:i+1,a

iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)

摘要 剪贴板同步能够提高很多的效率,免去复制、发送、复制、粘贴的步骤,只需要在手机上复制,就可以直接在电脑上 ctrl+v 粘贴,这方面在 Apple 设备中是做的非常好的,Apple 设备之间的剪贴板同步功能(Universal Clipboard)确实非常方便,它可以在 iPhone、iPad 和 Mac 之间无缝传输剪贴板内容,从而大大提高工作效率。 但是,iPhone 如何和 Wind

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

【虚拟机/服务器】非图形化界面下修改Shell中颜色的设置

1、首先 cd ~ && ll 可以看到如下图所示 2、输入 sudo vim .bashrc 进入 .bashrc 并通过 /PS1 迅速从上往下定位第一个PS1 3、输入 i 进入插入模式后修改 else 下面的配置如下 说明:\e[1;32;40m] 其中1表示高亮显示,32表示字体颜色是绿色,40表示背景色为黑色 4、输入 esc 退出编辑模式到命令模式,再输入

iOS项目发布提交出现invalid code signing entitlements错误。

1、进入开发者账号,选择App IDs,找到自己项目对应的AppId,点击进去编辑, 2、看下错误提示出现  --Specifically, value "CVYZ6723728.*" for key "com.apple.developer.ubiquity-container-identifiers" in XX is not supported.-- 这样的错误提示 将ubiquity

我的第一次份实习工作-iOS实习生-第三个月

第三个月 这个月有一个考核项目,是一个电子书阅读器,组长说很重要,是我的实习考核项目。 我的项目XTReader,这是我参考网上的一些代码,和模仿咪咕阅读做的,功能还不完善,数据的部分是用聚合数据做的。要收费的。   还有阅读页面,基本功能实现了一下。使用了autolayout,自适应布局,也是第一次用网络,第一次用数据库,第一次用自动布局。还有很多不足。 做了一周多,有个问题一直没

我的第一次份实习工作-iOS实习生-公司使用过的软件

bittorrentsync 素材,文件同步软件 cornerstone svn 软件开发合作 mark man 测量坐标的软件 SQLLite Manager 数据库操作软件