【手动创建UIWindow Objective-C语言】

2023-11-11 01:28

本文主要是介绍【手动创建UIWindow Objective-C语言】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、上节课,我们讲了控制器View的懒加载:

通知

1.什么时候会调用这个懒加载呢,用我们直接,控制器self.view

self.view的时候:

通知

什么时候,调用它这个self.view,

就要去加载控制器的view,

self.view 加载控制器的view

通知

我们给大家演示过了,这个大家已经清楚了,我们给大家说了一个细节,就是颜色的问题,对吧,

再解释一下颜色的问题,

通知

我们在这里,hmVc“点儿”view“点儿”backgroundColor:

通知

这个执行顺序是怎么样的呢,

首先,hmVc“点儿”view,是不是就要控制器的view,

这时候,这个颜色先不说啊,颜色都还没到呢,

你先加载view,最后才是颜色,

所以呢,先看view,

view,怎么去加载呢,

先到控制器里面:

通知

loadView:

把view加载起来,

然后呢,viewDidLoad,才算这个view真实的有了,

有了之后呢,你在这里面,把它的颜色改了,改成绿色了,对吧,

在这里面,赋值了一个颜色,

通知

在这里面,赋值了一个颜色,然后,回到Delegate里面,

通知

现在,这个view,是不是才算真实的有了,

那这时候,又给了它一个颜色,红色,

改成了一个红色,

所以它最后就显示成一个红色了,

但是呢,我们在通过断点去调试的时候:

通知

最下面也加一个断点:

通知

控制器里面也加一个断点:

通知

command + R:

通知

走一个:

通知

1)创建控制器

2)设置view,的颜色是红色,

通知

hmVc“点儿”view,遇到这个“点儿”,就进到控制器里面:

3)控制器里面,执行loadView:

通知

现在是不是加载view,

4)然后呢,在viewDidLoad:里面:

通知

这个时候,我如果再跳的话,它没有再在这行停留了:

通知

没有再在这行停留了,

然后这个背景色,一赋值,

相当于直接就过了,

看着啊,一走,它就到31行了:

通知

是不是啊,直接来到31行了,

所以呢,有同学可能会有问题,这个颜色,有点儿疑问,

给大家解释清楚,

好,这是我们这一个关于这个控制器的view的懒加载,

这篇关于【手动创建UIWindow Objective-C语言】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可