iOS基础界面UIViewController和导航介绍

作者:小菜 更新时间:2025-02-27 点击数:
简介: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,和,导

电脑中BIOS参数无法设置的解决方法

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

在使用的的过程中经常会遇到一些之前未曾见过的棘手问题,比如,有些用户反应电脑开机进入BIOS设置后,无法修改设置的数据,这该怎么办呢?由于出现BIOS参数无法进行设置问题的原因有很多而且处理方式也不同,现在,小编就为大家总结了此问题的几种原因及相应的解决方法。

BIOS参数无法进行设置的原因及解决方法: 1.设置BIOS的时候,不同版本操作方法也不通,有的BIOS版本设置类似于Windows中的操作,可以通过按回车键进行。

有的参数将光标移到后,需要用键盘直接设置。

2.BIOS芯片损坏,这种情况需要将主板返修。

3.CMOS存储器问题,可以通过放电或者BIOS程序进行升级处理。

4.病毒侵袭了BIOS数据,这种情况下,要对CMOS进行放电,放电后再重新设置BIOS。

5.电脑BIOS中设置了 用户密码 和 超级密码 ,这两个用户的权限不同,当使用用户密码进入CMOS的时候,就无法修改,只有用超级用户密码,才能修改设置。

6、当 BIOS设置 和 操作系统 均无法进入时,便不能切换到DOS方式用程序来破解密码。

此时,只有采用放电法。

一种是 跳线放电法 ??拆开主机箱,在主板上找到一个与COMS有关的跳线(参考主板说明书),此跳线平时插在1-2的针脚上,只要将它插在2-3的针脚上,然后再放回1-2针脚即可清除密码。

另一种是 COMS电池放电法 ?? 拆开主机箱,在主板上找到一粒钮扣式的电池,叫CMOS电池(用于BIOS的单独供电,保证BIOS的设置不因计算机的断电而丢失),取出COMS电池,等待5分钟后放回电池,密码即可解除。

但此时BIOS的密码不论如何设置,用万能密码均可进入BIOS设置和操作系统。

当然,自己设置的密码同样可以使用。

BIOS中的其他设置将恢复到原来状态,要优化计算机性能或解决硬件冲突需要重新设置。

电脑开机进入BIOS设置后无法进行设置的解决方法就介绍到这了,如果大家还有其他疑问或者想了解更多有关系统问题欢迎关注菜科网官网。

注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 电脑中BIOS参数无法设置的解决方法 分类于: 回答于:2016-01-14 在使用的的过程中经常会遇到一些之前未曾见过的棘手问题,比如,有些用户反应电脑开机进入BIOS设置后,无法修改设置的数据,这该怎么办呢?由于出现BIOS参数无法进行设置问题的原因有很多而且处理方式也不同,现在,小编就为大家总结了此问题的几种原因及相应的解决方法。

BIOS参数无法进行设置的原因及解决方法: 1.设置BIOS的时候,不同版本操作方法也不通,有的BIOS版本设置类似于Windows中的操作,可以通过按回车键进行。

有的参数将光标移到后,需要用键盘直接设置。

2.BIOS芯片损坏,这种情况需要将主板返修。

3.CMOS存储器问题,可以通过放电或者BIOS程序进行升级处理。

4.病毒侵袭了BIOS数据,这种情况下,要对CMOS进行放电,放电后再重新设置BIOS。

5.电脑BIOS中设置了 用户密码 和 超级密码 ,这两个用户的权限不同,当使用用户密码进入CMOS的时候,就无法修改,只有用超级用户密码,才能修改设置。

6、当 BIOS设置 和 操作系统 均无法进入时,便不能切换到DOS方式用程序来破解密码。

此时,只有采用放电法。

一种是 跳线放电法 ??拆开主机箱,在主板上找到一个与COMS有关的跳线(参考主板说明书),此跳线平时插在1-2的针脚上,只要将它插在2-3的针脚上,然后再放回1-2针脚即可清除密码。

另一种是 COMS电池放电法 ?? 拆开主机箱,在主板上找到一粒钮扣式的电池,叫CMOS电池(用于BIOS的单独供电,保证BIOS的设置不因计算机的断电而丢失),取出COMS电池,等待5分钟后放回电池,密码即可解除。

但此时BIOS的密码不论如何设置,用万能密码均可进入BIOS设置和操作系统。

当然,自己设置的密码同样可以使用。

BIOS中的其他设置将恢复到原来状态,要优化计算机性能或解决硬件冲突需要重新设置。

电脑开机进入BIOS设置后无法进行设置的解决方法就介绍到这了,如果大家还有其他疑问或者想了解更多有关系统问题欢迎关注菜科网官网。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

Bios版本如何查看?电脑Bios版本四种查看方法

想重装系统不会怎么办?菜科网一键重装系统轻松在线帮您搞定系统重装问题。

软件支持 在线重装、U盘制作、自定义重装 等多种模式。

BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。

它的全称应该是ROM-BIOS,意思是只读存储器基本输入输出系统。

今天,小编就来和大家介绍电脑Bios版本四种查看方法,一起来看下文具体内容介绍吧。

方法一:看电脑开机界面或者进入bios中查看:在电脑开机自检界面一般可以看到bios版本信息,如果开机界面变化太快,可以进入bios设置中,查看bios版本,如下图所示: 方法二:在系统中借助 DXDIAG 命令查看bios版本(下面以Win7系统为例,其他系统方法一样) 1、首先打开运行操作框,在开始菜单中可以找到,也可以使用【win + R】组合快捷键快速打开,之后输入命令 DXDIAG ,然后按回车键或底部的 确认 按钮运行,如下图所示。

2、在打开的DXDIAG诊断工具中,就可以看到bios版本了,如下图所示。

方法三:使用CPU-Z工具查看bios版本 CPU-Z是一款小巧的CPU检测工具,只要在电脑中下载安装运行CPU-Z软件,之后在 主板 参数中就可以看到电脑bios版本,如下图所示。

方法四: 1、Win键+R打开 运行 ,然后再 运行 中输入cmd进而打开 cmd 。

2、打开 cmd 命令窗口后,输入命令:systeminfo 然后等待系统反应过来后,会出现此系统所有硬件和操作系统的相关信息,在其中能找到 BIOS 版本 的项目。

其实,在电脑开机界面、电脑系统中或者借助硬件工具都可以查看电脑Bios版本,有需要查看电脑Bios版本的用户不妨来学习上文介绍的四种方法查看,希望本文介绍的内容对大家有所帮助。

注意:本站所刊载的文章均为学习交流之用,请勿用于商业用途。

对于商业使用,请联系各自版权所有者,否则法律问题自行承担。

Win7系统升级指南:全面解析升级步骤与要点 Win7系统损坏修复教程:详细步骤助你快速解决问题 Bios版本如何查看?电脑Bios版本四种查看方法 分类于: 回答于:2016-03-23 BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本输入输出系统"。

它的全称应该是ROM-BIOS,意思是只读存储器基本输入输出系统。

今天,小编就来和大家介绍电脑Bios版本四种查看方法,一起来看下文具体内容介绍吧。

方法一:看电脑开机界面或者进入bios中查看:在电脑开机自检界面一般可以看到bios版本信息,如果开机界面变化太快,可以进入bios设置中,查看bios版本,如下图所示: 方法二:在系统中借助 DXDIAG 命令查看bios版本(下面以Win7系统为例,其他系统方法一样) 1、首先打开运行操作框,在开始菜单中可以找到,也可以使用【win + R】组合快捷键快速打开,之后输入命令 DXDIAG ,然后按回车键或底部的 确认 按钮运行,如下图所示。

2、在打开的DXDIAG诊断工具中,就可以看到bios版本了,如下图所示。

方法三:使用CPU-Z工具查看bios版本 CPU-Z是一款小巧的CPU检测工具,只要在电脑中下载安装运行CPU-Z软件,之后在 主板 参数中就可以看到电脑bios版本,如下图所示。

方法四: 1、Win键+R打开 运行 ,然后再 运行 中输入cmd进而打开 cmd 。

2、打开 cmd 命令窗口后,输入命令:systeminfo 然后等待系统反应过来后,会出现此系统所有硬件和操作系统的相关信息,在其中能找到 BIOS 版本 的项目。

其实,在电脑开机界面、电脑系统中或者借助硬件工具都可以查看电脑Bios版本,有需要查看电脑Bios版本的用户不妨来学习上文介绍的四种方法查看,希望本文介绍的内容对大家有所帮助。

菜科网系统致力于解决 Windows 系统重装解决方案,提供高效、安全、免费的系统重装服务。

加入收藏
               

iOS基础界面UIViewController和导航介绍

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录