当前位置: 首页 > news >正文

【TabBar嵌套Navigation案例-新特性页面-代码位置 Objective-C语言】

一、接下来,我们来说这个新特性页面

通知

1.首先,看一下我们的示例程序,这里改一下,加一个叹号,

通知

command + R,

通知

好,首先啊,这里边有一个新特性页面,当我这个程序是第一次安装、第一次运行、还有呢、就是当这个应用程序更新的时候,我应该去加载这个新特性页面,

然后呢,这个新特性页面,实际上,就是一个Controller,就是一个CollectionViewController啊,就是一个Controller,

然后呢,如果你是第一次运行、或者是更新的时候、就应该让Window的根控制器,变成你新特性的这个Controller,

如果呢,你不是第一次,或者不是更新的情况下,那么,直接就显示到你的那个tabbarController上,就可以了,

所以呢,我们这个时候啊,肯定是要在AppDelegate里边,在你设置控制器的时候,我们先把最后一份代码复制一份儿,备份一下,

通知

改名叫09-彩票-新特性-代码位置,

通知

来到我们的AppDelegate里边,

通知

Window的RootViewController,是在这一块儿,在一定条件下,应该是tabbarController,

在另外的条件下,应该是显示新特性页面,所以,我们肯定是要在这儿写代码的,这是第一,

2.然后呢,接下来,我们就要来说,怎么着去判断第一次运行、或者是更新的情况,然后,就应该显示到这个新特性的情况,

然后,其他的情况,就应该显示的是tabbar的情况,

首先呢,我们的思路啊,大体是这个样子的,我们说,版本号,是在info.plist里边,

通知

没问题吧,这个1.0,就是版本号,

我们要把这些版本号,保存到沙盒当中去,每一次,在你切换控制器之前,在你一上来要显示,不确定显示哪一个控制器之前,先判断一下,你当前沙盒里边的这个版本号,你沙盒里边存的这个版本号,跟我当前跑的这个程序的info.plist里面的版本号,是不是一致的,如果是不一致的,那也就意味着,要不你就是更新了,要不你就是第一次运行,然后,我就应该去加载一个新特性页面,如果是一致的,就意味着,我之前已经跑过这个程序了,然后呢,把它去显示tabbar界面,就可以了,

总之,我要把版本号保存一下,然后呢,加载这个控制器之前,去进行判断,这是我要做的事情,首先呢,我们在Delegate里边,先写几个方法,

通知

我要把它拆开了,先写几个方法,这几个方法啊:

1)把版本号保存到沙盒

2)读取沙盒里面的版本号

3)读取info.plist里面的版本号

我先把这些方法都写好了,然后,再去代码里边去拼,

2.好,首先呢,我要写一下啊,我来先写一个,把当前的版本号保存到沙盒,

// 把当前的版本号保存到沙盒

- (void)saveAppVersion{

}

通知

我只要调用这个方法,就能把当前info.plist版本号,保存到沙盒当中去,

那么,首先,我要去获取到当前的版本号,

// 获取当前程序的版本号

当前程序的版本号,也就意味着,我要去获取info.plist里面的这个1.0,

通知

这个字符串,这个东西怎么着去获取,

首先,我怎么着去获取info.plist,这个文件,

info.plist,虽然它是一个plist,但是它的根节点,是不能够改变的,

info.plist,都是字典,

通知

然后,我们怎么着去获取这个字典,系统给我们提供了方法,

// 获取info 字典

[NSBundle mainBundle].infoDictionary;

通知

相关文章:

【TabBar嵌套Navigation案例-新特性页面-代码位置 Objective-C语言】

一、接下来,我们来说这个新特性页面 1.首先,看一下我们的示例程序,这里改一下,加一个叹号, command + R, 好,首先啊,这里边有一个新特性页面,当我这个程序是第一次安装、第一次运行、还有呢、就是当这个应用程序更新的时候,我应该去加载这个新特性页面, 然后呢,这…...

程序员如何提升并保持核心竞争力?——深入钻研、广泛学习与软技能的培养

一、引言  随着人工智能的不断发展,尤其是AIGC系列大语言模型的涌现,AI辅助编程工具正在日益普及,这对程序员的工作方式产生了深刻的影响。面对这一变革,程序员应如何应对?是专注于某个领域深耕细作,还是…...

Linux之Docker虚拟化部署

上传docker安装包 解压安装包 将解压后的docker文件夹移动到/usr/local/文件夹下 docker 启动命令/usr/local/docker/dockerd 但是启动报错,意思是没有docker用户组 创建docker用户组,执行完会生成套接字文件 将套接字文件加入该用户组管理 第二个错误原…...

重构部队信息安全:部队涉密载体建设新策略

一、完善保密体系架构 1. 加强保密规章制度:制定或刷新关于机密信息管理的相关规定,明确机密信息的生成、复制、传输、使用、储存及销毁等核心环节的操作准则与责任分配,确保整个流程的标准化运作。 2. 明确个人保密义务:通过保密…...

使用Node.js的readline模块逐行读取并解析大文件

在Node.js环境中处理大文件是一个常见的需求,尤其是在处理日志文件、数据库导出、或任何形式的大规模文本数据时。由于Node.js是基于事件循环和非阻塞I/O的,它非常适合处理这类任务。然而,直接将整个文件内容加载到内存中可能会导致内存溢出&…...

浅谈软件安全开发的重要性及安全开发实践

在当今数字化时代,软件已成为企业运营的核心驱动力。然而,随着网络环境的日益复杂和黑客技术的不断演进,软件安全问题日益凸显,成为企业不可忽视的重大挑战。本文将从法律法规要求、企业核心数据资产保护、企业信誉等角度&#xf…...

在 NodeJs 里面如何获取 APK 的名称和 icon

最近想用 electron 写一个 adb 的可视化客户端,在展示安装的应用时遇到了如何获取 APK 的名称和 icon 的问题。下面就是一些解决问题的思路。 前提:在这里默认大家已经下载好 apk, 下面 localApkPath 就是你下载好的 apk 的路径。 小提示,示…...

基于VirtualBox和Ubuntu的虚拟环境搭建

VirtualBox简介 VirtualBox 是一款开源虚拟机软件。 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。简单易用,可虚拟的系统包括Windows&…...

【PHP源码】匿名来信系统H5版本V1.0免费开源

你的匿名来信H5一封你的来信源码/表白祝福短信程序/往来信/传话短信源码支持邮件发信与手机短信发信“你的匿名来信”是最近某音上爆火的一个活动话题,可以通过H5网站,编辑自己想要对某人说的话或者祝福,网站会把您想说的发给您预留的号码&am…...

Prompt技巧总结和示例分享

"Prompt"(提示)在人工智能中通常指的是输入给模型的文本,用于引导模型生成预期的输出。在使用人工智能助手时,有效的提示技巧可以帮助你获得更准确和有用的回答。 以下是一些单轮对话提示时的技巧: 明确具体…...

大厂校招:海能达嵌入式面试题及参考答案

SPI 协议的一些基础知识 SPI(Serial Peripheral Interface)即串行外设接口,是一种高速的、全双工、同步的通信总线。 SPI 主要由四根信号线组成: 时钟线(SCLK):由主设备产生,用于同步数据传输。时钟的频率决定了数据传输的速度。主设备输出 / 从设备输入线(MOSI):主…...

wrk(1) command

文章目录 1.简介2.特点3.格式4.选项5.示例参考文献 1.简介 wrk 是一个现代的 HTTP 压力测试工具,利用现代多线程技术和高效的网络 I/O 处理,能够生成大量的并发请求,用以测试 HTTP 服务器的性能。 它是作为一种更现代的压力测试工具而设计的…...

【小程序 - 大智慧】Expareser 组件渲染框架

目录 问题思考课程目标Web Component类型说明定义组件属性添加 Shadow DOMTemplate and SlotExparser 框架原理自定义组件内置组件 下周计划 问题思考 首先,给大家抛出去几个问题: 前端框架 Vue React 都有自己的组件库,但是并不兼容&#…...

vue + echarts 快速入门

vue echarts 快速入门 本案例即有nodejs和vue的基础,又在vue的基础上整合了echarts Nodejs基础 1、Node简介 1.1、为什么学习Nodejs(了解) 轻量级、高性能、可伸缩web服务器前后端JavaScript同构开发简洁高效的前端工程化 1.2、Nodejs能做什么(了解) Node 打破了…...

服务器几核几G几M是什么意思?如何选择?

服务器几核几G几M是什么意思?我们建站、搭建网络平台都要用到云服务器,不管在腾讯云、阿里云还是别的云服务平台选购,都会接触到服务器配置。云服务器就是把物理服务器(俗称“母鸡”),用虚拟机技术虚拟出多…...

K8S服务发布

一 、服务发布方式对比 二者主要区别在于: 1、部署复杂性:传统的服务发布方式通常涉及手动配置 和管理服务器、网络设置、负载均衡等,过程相对复 杂且容易出错。相比之下,Kubernetes服务发布方式 通过使用容器编排和自动化部署工…...

Allen Institute for Artificial Intelligence (Ai2) 发布开源多模态语言模型 Molmo

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

Html CSS 布局,位置处理 居中 对齐

Html CSS 布局&#xff0c;位置处理 1、居中布局 1、div 让内部div居中对齐 html <div class"container"><div class"item">I am centered!</div> </div>style .container {border: 2px solid rgb(75, 70, 74);border-radius:…...

Spring MVC系统学习(二)——Spring MVC的核心类和注解

Spring MVC&#xff08;Model-View-Controller&#xff09;是Spring框架的一个模块&#xff0c;用于构建基于Web的应用程序。它使用模型、视图和控制器分离的设计模式&#xff0c;使得Web开发更加模块化和灵活。在学习Spring MVC时&#xff0c;有几个核心类和注解是非常关键的&…...

conda虚拟环境安装包、依赖同一管理

在 Python 的虚拟环境中&#xff0c;每个环境都是独立的&#xff0c;这意味着即使两个环境需要相同的库&#xff0c;它们也会分别安装各自的副本。这样做是为了避免不同项目之间相互影响&#xff0c;确保每个项目都有一个干净且隔离的环境。 方法一&#xff1a;使用 Conda 的共…...

OpenClaw AI人格守护插件:基于记忆差异分析实现智能体人格稳定

1. 项目概述&#xff1a;一个为AI人格注入“记忆锚点”的守护插件如果你和我一样&#xff0c;长期在AI应用开发的一线&#xff0c;特别是围绕OpenClaw这类框架构建具有“人格”的智能体&#xff0c;那你一定遇到过这个令人头疼的经典问题&#xff1a;AI的人格会“漂移”。今天你…...

Go语言屏幕自动化工具Rizzler:基于计算机视觉的RPA实践指南

1. 项目概述&#xff1a;一个能“读懂”你屏幕的智能助手最近在折腾一个挺有意思的开源项目&#xff0c;叫ghuntley/rizzler。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你对自动化、RPA&#xff08;机器人流程自动化&#xff09;或者屏幕交互脚本感兴趣…...

技能图谱探索器:从数据建模到交互可视化的全栈实现

1. 项目概述&#xff1a;一个技能图谱的探索工具最近在GitHub上看到一个挺有意思的项目&#xff0c;叫nitzzzu/openclaw-skills-explorer。光看名字&#xff0c;openclaw和skills-explorer这两个词就挺有画面感的。我第一反应是&#xff0c;这应该是一个用来探索、梳理或可视化…...

PyInstaller打包的EXE程序修改与反编译

PyInstaller打包的EXE程序修改与反编译完全指南 前言 在实际工作中&#xff0c;我们经常会遇到需要修改已打包的Python EXE程序的情况——可能是界面文字需要调整&#xff0c;也可能是功能需要微调。本文将系统介绍如何对PyInstaller打包的EXE程序进行反编译、修改和重新打包&a…...

OpenClawBox:构建统一AI网关,实现多模型智能路由与成本优化

1. 项目概述&#xff1a;从零到一&#xff0c;打造你的个人AI路由中枢 如果你和我一样&#xff0c;在深度使用各类大语言模型&#xff08;LLM&#xff09;时&#xff0c;常常陷入一种甜蜜的烦恼&#xff1a;ChatGPT-4o的推理能力无与伦比&#xff0c;但价格不菲&#xff1b;Cl…...

用C++‘数1’这道题,带你彻底搞懂整数位分离的循环技巧(附避坑点)

用C‘数1’这道题&#xff0c;带你彻底搞懂整数位分离的循环技巧&#xff08;附避坑点&#xff09; 在编程学习的道路上&#xff0c;整数位分离是一个看似简单却暗藏玄机的基础操作。许多初学者在解决"统计数字中1的个数"这类问题时&#xff0c;往往能写出大致正确的…...

CANN/ge 图引擎资源释放

aclgrphBuildFinalize 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、Tens…...

163MusicLyrics:免费音乐歌词提取终极指南,轻松获取网易云与QQ音乐歌词

163MusicLyrics&#xff1a;免费音乐歌词提取终极指南&#xff0c;轻松获取网易云与QQ音乐歌词 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到准确的音乐歌…...

告别GSWP3:手把手教你为CESM2.1.3配置自定义气象强迫数据集(CLM1PT模式详解)

告别GSWP3&#xff1a;手把手教你为CESM2.1.3配置自定义气象强迫数据集&#xff08;CLM1PT模式详解&#xff09; 当研究团队需要将ERA5、CMIP6等新型再分析数据接入CESM模型时&#xff0c;往往会在数据接口环节遭遇"黑箱"操作困境。本文将以CLM1PT模式为切入点&#…...

明日方舟基建自动化终极方案:Arknights-Mower 智能管理工具完全指南

明日方舟基建自动化终极方案&#xff1a;Arknights-Mower 智能管理工具完全指南 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》中繁琐的基建管理而苦恼吗&#xff1f;每天需要…...