iOS基础界面UIViewController和导航介绍

首先区分content controller和container controller的区别。
co
【菜科解读】
iOS基础界面就是通过UIViewController展示的。
首先区分content controller和container controller的区别。
content controlller就是展示我们当前页面的controller,而container controller就是一个管理content controller的容器,基本就是UINavigationController和UITabbarController,本身它也是继承UIViewController,一个UIViewController压栈就是把它加入到container controller的view上。
下面说一下UIViewController的生命周期:
1. -(void)loadView; 这里用来加载controller的view,一般我们都必须调用[super loadView]来完成对view的加载,当然如果不需要用self.view也可以。
然后再对我们需要的子view进行生成和布局。
2.- (void)viewDidLoad; 这里代表view已经加载完成,一般用来处理数据model之类的。
3.- (void)viewWillAppear:(BOOL)animated; Controller将要被加入到当前window的回调,每次push或pop到当前controller就会回调这个函数,代表界面将要展示出来。
4.-(void)viewDidAppear:(BOOL)animated; Controller已经被加入到当前window,也就是push、present或pop的动画已经完成。
{可能被大多数人忽略的是,在每次调用viewWillAppear或viewDidAppear,系统都会调用一下两个函数:
(1)(void)viewWillLayoutSubviews 这个可能很多人忽略了,是5.0才增加的函数,界面将要对子view进行布局。
当通话或录音状态中,状态栏下移,也会回调这个函数。
(2)-(void)viewDidLayoutSubviews 这个跟4对应,也是5.0增加的函数,对子view布局完成。
}
一般在上面4个函数,我们已经可以完成界面的展示。
记得它们的先后顺序是必须的。
至于收到内存警告,在6.0等不同版本controller的不同回调我之前已经介绍过了,就不再介绍了。
关于Container Controller:
这里就只说介绍UINavigationController,本身它就是继承UIViewController,所以它具有上面所说的生命周期。
至于什么东西应该放在viewController,什么应该放在navgationController呢,这里说说我的理解。
因为navgationController就是管理controller的容器,所以它处理的应该就是controller的关系。
并且在某种意义上,它里面的controller就相当于它的一个子view,所以在navgationController的操作就能控制它里面的每个controller。
下面以现在比较流行的手势导航为例:(也就是在二级页面向右滑动就能返回)
@interface TestNavigationController()
{
UIPanGestureRecognizer*_panGesture; //手势导航的recognizer
CGPoint_panStartPoint; //记录开始滑动的point,只有滑动到一定宽度才开启导航
}
@property(nonatomic,retain)UIPanGestureRecognizer*panGesture;
@end
@implementationTestNavigationController
@synthesizepanGesture =_panGesture;
- (void)viewDidLoad
{
[superviewDidLoad];
//在navgationController的view添加手势,也就是为每个当前的controller添加了手势
[self.view removeGestureRecognizer:self.panGesture];
UIPanGestureRecognizer*panGesture = [[UIPanGestureRecognizeralloc]initWithTarget:self
action:@selector(handlePanGesture:)];
panGesture.minimumNumberOfTouches=1;
panGesture.maximumNumberOfTouches=1;
panGesture.delegate=self;
self.panGesture= panGesture;
[panGesturerelease];
[self.view addGestureRecognizer:self.panGesture];
}
-(void)handlePanGesture:(UIPanGestureRecognizer*)pan
{
//记录开始滑动的point
if(pan.state==UIGestureRecognizerStateBegan){
_panStartPoint= [panlocationInView:self.view];
}
//在滑动结束,判断滑动的距离是不是适合宽度,处理是否返回上级页面
if(pan.state==UIGestureRecognizerStateEnded) {
CGPoint_endPoint = [panlocationInView:self.view];
if(_endPoint.x-_panStartPoint.x>70.0f){
//二级页面就能滑动返回
if([self.viewControllerscount] >1){
[selfpopViewControllerAnimated:YES];
}
}
}
}
#pragma mark UIGestureRecognizerDelegate method //手势的delegate,处理一些同时进行的手势操作
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer
{
//一般情况下,如果上下滑动幅度太大,应该就是在滑动controller的tableview之类的,就不开启滑动导航
if(gestureRecognizer ==self.panGesture) {
CGPointtranslation = [(UIPanGestureRecognizer*)gestureRecognizertranslationInView:self.view];
return((fabs(translation.x) /fabs(translation.y) >5.0f) ?YES:NO);
}
return YES;
}
当我们把appDelegate的window.rootViewController设为TestNavigationController,就可以很方便快捷地实现滑动手势导航功能。
下面说一下静态视图modelViewController,通常我们就是用
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void(^)(void))completion压入一个模态视图。
其实静态的概念就是它入栈的方式和动画不同而已。
需要注意的是,一个navgationController不可以push一个navgationController,但是可以present一个navgationController。
另外,无论是一个viewController,还是navgationController,都可以present一个modelViewController,并且modelViewController并不加入到navgationController的导航栈中。
所以navgationController的topViewController和visibleViewController是不同概念的。
topViewController就是导航栈stack的栈顶,也就是不包括modelViewController,而visibleViewController是当前展示的viewController,如果有模态视图就是模态视图,否则就是topViewController。
最后用一句话总结, A viewController is a set of views, A navgationcontroller is a set ofviewControllers.
iOS,基础,界面,UIViewController,和,导如何进入电脑重装系统界面
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:进入电脑重装系统界面是电脑维护和修复的重要步骤,本文将介绍如何进入电脑重装系统界面,并提供两种方法。
通过本文的指导,读者可以轻松进入电脑重装系统界面,解决电脑故障和系统崩溃的问题。
工具原料:操作系统版本:Windows 10品牌型号:HP Pavilion 15软件版本:Windows 10 安装盘一、通过启动菜单进入电脑重装系统界面1、首先,将Windows 10安装盘插入电脑的光驱或USB接口。
2、重启电脑,并在启动过程中按下F12或其他相应的按键进入启动菜单。
3、在启动菜单中,选择从光驱或USB启动,按下回车键。
4、接下来,按照屏幕上的提示进行操作,选择语言、时区等设置。
5、在安装类型选择界面,选择“自定义”选项。
6、在分区界面,选择需要重装系统的分区,并点击“删除”按钮。
7、确认删除分区后,点击“新建”按钮创建新的分区。
8、选择新建的分区,并点击“下一步”按钮开始安装系统。
二、通过BIOS设置进入电脑重装系统界面1、首先,重启电脑,并在启动过程中按下F10或其他相应的按键进入BIOS设置。
2、在BIOS设置界面中,找到“Boot”或“启动”选项,并进入。
3、在启动选项中,将光驱或USB设备设置为第一启动项。
4、保存设置并退出BIOS。
5、重启电脑,系统将会从光驱或USB设备启动。
6、按照屏幕上的提示进行操作,选择语言、时区等设置。
7、在安装类型选择界面,选择“自定义”选项。
8、在分区界面,选择需要重装系统的分区,并点击“删除”按钮。
9、确认删除分区后,点击“新建”按钮创建新的分区。
10、选择新建的分区,并点击“下一步”按钮开始安装系统。
总结:通过本文介绍的两种方法,读者可以轻松进入电脑重装系统界面。
在遇到电脑故障或系统崩溃时,重装系统是解决问题的有效方法。
然而,在进行重装系统之前,务必备份重要数据,以免数据丢失。
希望本文对读者有所帮助,解决电脑问题。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 简介:进入电脑重装系统界面是电脑维护和修复的重要步骤,本文将介绍如何进入电脑重装系统界面,并提供两种方法。
通过本文的指导,读者可以轻松进入电脑重装系统界面,解决电脑故障和系统崩溃的问题。
工具原料:操作系统版本:Windows 10品牌型号:HP Pavilion 15软件版本:Windows 10 安装盘一、通过启动菜单进入电脑重装系统界面1、首先,将Windows 10安装盘插入电脑的光驱或USB接口。
2、重启电脑,并在启动过程中按下F12或其他相应的按键进入启动菜单。
3、在启动菜单中,选择从光驱或USB启动,按下回车键。
4、接下来,按照屏幕上的提示进行操作,选择语言、时区等设置。
5、在安装类型选择界面,选择“自定义”选项。
6、在分区界面,选择需要重装系统的分区,并点击“删除”按钮。
7、确认删除分区后,点击“新建”按钮创建新的分区。
8、选择新建的分区,并点击“下一步”按钮开始安装系统。
二、通过BIOS设置进入电脑重装系统界面1、首先,重启电脑,并在启动过程中按下F10或其他相应的按键进入BIOS设置。
2、在BIOS设置界面中,找到“Boot”或“启动”选项,并进入。
3、在启动选项中,将光驱或USB设备设置为第一启动项。
4、保存设置并退出BIOS。
5、重启电脑,系统将会从光驱或USB设备启动。
6、按照屏幕上的提示进行操作,选择语言、时区等设置。
7、在安装类型选择界面,选择“自定义”选项。
8、在分区界面,选择需要重装系统的分区,并点击“删除”按钮。
9、确认删除分区后,点击“新建”按钮创建新的分区。
10、选择新建的分区,并点击“下一步”按钮开始安装系统。
总结:通过本文介绍的两种方法,读者可以轻松进入电脑重装系统界面。
在遇到电脑故障或系统崩溃时,重装系统是解决问题的有效方法。
然而,在进行重装系统之前,务必备份重要数据,以免数据丢失。
希望本文对读者有所帮助,解决电脑问题。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。
如何在Win7开机界面创建新用户
软件支持 在线重装、U盘制作、自定义重装 等多种模式。
简介:在Win7开机界面创建新用户是一项非常简单且实用的操作,本文将介绍如何通过几个简单的步骤来完成这一操作。
工具原料:操作系统版本:Windows 7品牌型号:任意品牌型号的电脑软件版本:无需额外安装软件一、打开用户账户设置1、首先,点击Win7开机界面左下角的“开始”按钮。
2、在弹出的菜单中,选择“控制面板”。
3、在控制面板中,找到并点击“用户账户和家庭安全”。
4、在用户账户和家庭安全页面中,点击“用户账户”。
二、创建新用户1、在用户账户页面中,点击“管理另一个账户”。
2、接下来,点击“创建新账户”。
3、在弹出的对话框中,输入新用户的名称和密码。
4、选择新用户的账户类型,可以选择“标准用户”或“管理员”。
5、点击“创建账户”按钮,即可成功创建新用户。
三、切换用户1、在Win7开机界面,点击右下角的“切换用户”按钮。
2、在弹出的用户列表中,选择要切换到的用户。
3、输入该用户的密码,点击“登录”按钮。
4、系统将自动切换到选定的用户账户。
四、删除用户1、在用户账户页面中,点击要删除的用户账户。
2、点击“删除账户”按钮。
3、在弹出的对话框中,选择“保留文件”或“删除文件”,然后点击“删除账户”按钮。
4、系统将删除选定的用户账户。
总结:通过以上几个简单的步骤,我们可以在Win7开机界面轻松地创建新用户、切换用户和删除用户。
这些操作可以帮助我们更好地管理和保护个人信息,提高电脑的安全性和使用效率。
标签: 注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。
对于商业使用,请联系各自版权所有者,否则法律问题自行承担。
Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 如何在Win7开机界面创建新用户 分类于: 回答于:2023-09-29 简介:在Win7开机界面创建新用户是一项非常简单且实用的操作,本文将介绍如何通过几个简单的步骤来完成这一操作。
工具原料:操作系统版本:Windows 7品牌型号:任意品牌型号的电脑软件版本:无需额外安装软件一、打开用户账户设置1、首先,点击Win7开机界面左下角的“开始”按钮。
2、在弹出的菜单中,选择“控制面板”。
3、在控制面板中,找到并点击“用户账户和家庭安全”。
4、在用户账户和家庭安全页面中,点击“用户账户”。
二、创建新用户1、在用户账户页面中,点击“管理另一个账户”。
2、接下来,点击“创建新账户”。
3、在弹出的对话框中,输入新用户的名称和密码。
4、选择新用户的账户类型,可以选择“标准用户”或“管理员”。
5、点击“创建账户”按钮,即可成功创建新用户。
三、切换用户1、在Win7开机界面,点击右下角的“切换用户”按钮。
2、在弹出的用户列表中,选择要切换到的用户。
3、输入该用户的密码,点击“登录”按钮。
4、系统将自动切换到选定的用户账户。
四、删除用户1、在用户账户页面中,点击要删除的用户账户。
2、点击“删除账户”按钮。
3、在弹出的对话框中,选择“保留文件”或“删除文件”,然后点击“删除账户”按钮。
4、系统将删除选定的用户账户。
总结:通过以上几个简单的步骤,我们可以在Win7开机界面轻松地创建新用户、切换用户和删除用户。
这些操作可以帮助我们更好地管理和保护个人信息,提高电脑的安全性和使用效率。
菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。