// 自定义初始化方法,通过加载可视化界面开发xib文件来加载控制器自定义界面。
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
// 视图控制器视图加载完成(并未显示出来)
// 视图控制器的入口方法
// 自定义界面初始化,基本用户数据加载,网络请求等。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self initializeAppearance];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图将要显示
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图显示完成
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图将要隐藏
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
// 视图隐藏完成
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
NSLog(@"%@", NSStringFromSelector(_cmd));
}
- (void)initializeAppearance {
// 配置视图控制器视图背景色,默认透明色,界面推送时透明色会产生残影效果。
self.view.backgroundColor = [UIColor whiteColor];
/* UIView初始化及属性 */
UIView *blackView = [[UIView alloc] initWithFrame:CGRectMake(60, 184, 200, 200)];
// 配置视图背景色
blackView.backgroundColor = [UIColor blackColor];
// 配置视图的透明度,0-1,1表示不透明,0表示透明,当透明度为0时视图默认被隐藏。
blackView.alpha = 1.0;
// 配置视图是否被隐藏,默认为NO
blackView.hidden = NO;
// 配置视图标签,标签值唯一,标签值大于10且为整形。
blackView.tag = 10;
[self.view addSubview:blackView];
[blackView release];
// frame:决定了视图"在父视图坐标系中"的大小和左上角点的位置;
// NSLog(@"frame = %@", NSStringFromCGRect(blackView.frame));
// bounds:决定了视图"在自身坐标系中"的大小和左上角点的位置;
// NSLog(@"bounds = %@", NSStringFromCGRect(blackView.bounds));
// center:决定了视图"在父视图坐标系中"的中心点位置。
// NSLog(@"center = %@", NSStringFromCGPoint(blackView.center));
// subviews:视图所管理的所有子视图集合,视图后添加的在集合的末尾;
// NSLog(@"view subviews = %@", self.view.subviews);
// superview:管理当前视图的父视图。
// NSLog(@"blackview superview = %@", blackView.superview);
/* 视图层级 */
UIView *grayView = [[UIView alloc] initWithFrame:CGRectMake(90, 214, 200, 200)];
grayView.backgroundColor = [UIColor grayColor];
grayView.tag = 11;
// [self.window addSubview:grayView];
// [grayView release];
// 视图调整方法
// [self.window sendSubviewToBack:grayView];
// [self.window bringSubviewToFront:blackView];
// [self.window exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
// 视图插入方法
[self.view insertSubview:grayView belowSubview:blackView];
[grayView release];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.bounds = CGRectMake(0, 0, 100, 30);
button.center = CGPointMake(160, 450);
[button setTitle:@"确定"
forState:UIControlStateNormal];
[button addTarget:self
action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonPressed:(UIButton *)sender {
/*
// 通过tag值视图
UIView *blackView = [self.view viewWithTag:10];
UIView *grayView = [self.view viewWithTag:11];
NSLog(@"black view = %@", blackView);
NSLog(@"gray view = %@", grayView);
// 视图移除,父视图负责release子视图一次,视图被释放销毁,内存回收
[blackView removeFromSuperview];
[grayView removeFromSuperview];
*/
/* 视图控制器页面推送:模态视图控制器推送 */
// 1.创建视图控制器
DetailViewController *detailVC = [[DetailViewController alloc] init];
// 2.新控制器推送显示
// 当前控制器会持有被显示的控制器,retainCount + 1
[self presentViewController:detailVC animated:YES completion:^{
// NSLog(@"detail view controller show!");
}];
// 3.新控制器内存管理释放
[detailVC release];
}
// 接收到内存警告时调用
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}相关推荐
42、iOS视图控制器开发全解析
本文全面解析了iOS视图控制器开发的关键知识点,包括展开转场(Unwind Segue)机制及定制方法、视图控制器的生命周期事件及其正确使用方式、内存管理策略以及优化技术(如懒加载、NSCache、NSPurgeableData等),同时探讨了后台内存使用优化和状态恢复等内容。通过详细的流程说明、代码示例和最佳实践建议,帮助开发者构建高效、稳定的iOS应用,提升用户体验。
【IOS学习】IOS开发之视图和视图控制器
视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。在UIKit框架中都有一个UIWindow来容纳我们的View。应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。UIWindow可以不借助于父类视图显示在
26、iOS开发:表格视图与导航控制器详解
本文深入讲解了iOS开发中表格视图与导航控制器的核心概念和实际应用。内容涵盖表格视图的分区索引设置、导航控制器的视图栈管理、字体浏览器应用的构建步骤以及不同设备上的导航控制器差异。通过详细的步骤说明和示例,帮助开发者掌握如何在实际项目中处理复杂的分层数据,并优化用户体验。
IOS开发之视图和视图控制器
视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing中的Panel差不多。在UIKit框架中都有一个UIWindow来容纳我们的View。应用程序中几乎全部的可视控件都是UIView以及UIView的子类的实例,并且UIWindow也是UIView的子类。UIWindow可以不借助于父类视图显示在
6、iOS应用开发:视图控制器模板详解
本文详细解析了iOS开发中常用的视图控制器模板,包括基于分割视图的应用模板和标签栏应用模板。通过示例项目,介绍了分割视图的主-详细界面实现、设备方向适配、表格视图数据绑定,以及标签栏应用的多视图切换和项目添加方法。适合希望掌握iOS界面布局和视图控制器管理的开发者参考学习。
35、iOS 开发:分屏视图控制器的使用与定制
本文详细介绍了在iOS开发中如何使用和定制分屏视图控制器(UISplitViewController),包括解决语言设置丢失问题、不同iPhone设备上的分屏表现差异、以及如何让所有iPhone实现类似iPhone 6 Plus的分屏效果。通过代码示例和详细说明,帮助开发者更好地掌握分屏视图控制器的定制技巧,并探讨了实际应用中的注意事项和优化建议。
iOS开发中视图控制器ViewControllers之间的数据传递
iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的。本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据。 首先新建一个空工程,并添加一个根视图控制器类,如下图所示: # 在函数didFinishLunchingWithOption中添加几行代码,完成后如下: ...
28、iOS开发:表视图与导航控制器深度解析
本文深入解析了iOS开发中的表视图与导航控制器,重点介绍了表视图的使用、视图调试技巧以及导航控制器的基本原理与应用。通过构建一个字体浏览器应用,详细讲解了如何展示字体家族列表、实现搜索功能及处理用户交互操作。文章还探讨了表视图和导航控制器在实际项目中的广泛应用,帮助开发者掌握构建分层数据展示和导航逻辑的核心技能。
iOS开发学习笔记③ - 视图控制器
视图控制器视图控制器是UIViewController类或其子类的对象。 每个控制器都负责管理一个视图层次结构,包括处理视图相关用户事件,以及将整个视图层次结构添加到应用窗口。以下以建立一个控制视图A和视图B的控制器为例。UIViewController的view属性 1、 首先为A,B建立两个UIViewController:ControllerA和ControllerB继承了UIViewC
23、iOS 开发:导航控制器与表格视图详解
本文详解了 iOS 开发中导航控制器与表格视图的使用,包括导航控制器的栈结构原理、表格视图的搜索功能,以及如何结合导航控制器和表格视图构建分层应用。文章还介绍了搭建 Nav 应用骨架的具体步骤,并提供了代码解析和开发建议,帮助开发者掌握 iOS 分层界面的设计与实现。
25、iOS开发:表视图与导航控制器的深入探索
本文深入探讨了iOS开发中表视图与导航控制器的使用方法。从表视图的基本操作,如添加导航栏、自定义单元格,到导航控制器的栈管理和层次数据的展示,再到Nav应用中各个子控制器的实现,详细介绍了如何构建一个功能丰富的iOS应用来展示和处理层次数据。通过具体示例,帮助开发者掌握了一系列与显示层次数据相关的常见任务,为后续开发更复杂的应用奠定了基础。
iOS开发视图控制器(ViewController)调用[super viewXXX]的简单理解
iOS开发视图控制器(ViewController)调用[super viewXXX]的简单理解本人刚刚进入iOS开发行业,许多理解可能存在错误,希望各位老司机看到能够指出。那么言归正传,记得在学习iOS开发的时候,老师讲过,- (void)viewDidLoad 、这类的函数中,要先调用父类的方法即:[super viewDidLoad]来完成一些事情,那么这些方法究竟做了什么呢?于是我就创建了多
掌握iOS开发中的视图控制器管理和视图动态创建
本章节详细介绍了iOS应用中,特别是在iPad上使用分割视图控制器创建主从视图结构的技巧。内容涉及如何通过检查设备类型来决定UI的创建,如何使用代理模式在两个视图控制器之间传递信息,以及如何动态地为视图控制器创建视图。这些技巧对于开发具有复杂交互和动态界面的应用程序至关重要。
玩转iOS开发 - 视图控制器生命周期
视图控制器生命周期
Workbuddy+DeepSeek V4傻瓜流配置全指南:API接入、模型切换与Agent实战
AI编程助手的核心价值不在于模型本身,而在于如何稳定、安全、低门槛地调用其能力。Agent作为智能体范式,依赖可靠的运行时环境与标准化API通信;DeepSeek V4系列凭借高吞吐、低延迟和强工具调用支持,成为当前生产级Agent的理想引擎。Workbuddy则通过本地配置管理、环境变量注入与UTF-8无BOM容错等工程设计,将复杂部署简化为可复现、可版本化、可团队协同的实践流程。本文聚焦API接入路径下的真实卡点——从Key获取验证、models.json字段语义到沙箱权限控制,覆盖开发者在Window
lvds接口_LVDS,接口,时序讲解,非常好的文章
欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电...
iOS开发之视图控制器(UIViewController)
点击打开链接
主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效
通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图: 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...
103



被折叠的 条评论
为什么被折叠?



