您的位置:首页 > 产品设计 > UI/UE

UIViewController - SenDylan

2016-03-25 16:31 423 查看
原文 http://www.cnblogs.com/SenDylan/p/3953832.html
主题 UIViewController iOS


automaticallyAdjustsScrollViewInsets

指定视图控制器是否应自动调整滚动视图的插图。

默认值是
YES
,允许视图控制器来调整以响应状态栏,导航栏占用的屏幕区域的滚动视图插图和工具栏和标签栏。设置为
NO
,如果你要管理滚动视图插入调整自己,比如当在视图层次以上的滚动视图。

bottomLayoutGuide

表示最低垂直范围为你的屏幕上的内容,具有自动布局的限制使用。(只读)

bottomLayoutGuide
物业进场时,视图控制器是最前面的屏幕上。这表明了,你不希望出现的背后半透明或透明的UIKit栏(如标签栏或工具栏)含量最低的垂直范围。此属性实现
UILayoutSupport
协议,可以使用的时候使用它作为一个约束项
NSLayoutConstraint
类。

这个属性的值是,具体而言,值
,当你查询这个属性的对象属性返回。这个值是由两种视图控制器或通过其封闭容器视图控制器(如导航或标签栏控制器)的限制,具体如下:

视图控制器不能在一个容器视图控制器限制了这个属性,以指示标签栏或工具栏的顶部,如果其中一个是可见的,否则,表示视图控制器的视图的底部边缘。

视图控制器内的一个容器视图控制器不设置该属性的值。取而代之的是,容器的视图控制器会限制值,以指示该选项卡栏或工具栏的顶部,如果其中一个是可见的,要不然以指示视图控制器的视图的底部边缘。

如果容器视图控制器的工具栏或标签栏是可见的和不透明的容器将最前面的视图控制器的视图,其底部边缘紧靠栏的顶部。在这种情况下,该属性的值是0。

查询您的贯彻实施中这个属性
viewDidLayoutSubviews
方法。

当铺设了故事情节的场景,底部布局指南的目的是在Interface Builder的大纲视图的视图控制器对象的子对象可用。添加使用Interface Builder底部布局指南提供向后兼容性布局到iOS 6。

至于如何以编程方式使用此属性与自动布局的例子,说你要到位置控制,使得它的底边是20点的底部布局指南以上。此方案适用于任何上面列出的场景。使用类似于下面的代码:
[按钮setTranslatesAutoresizingMaskIntoConstraints:NO];

ID bottomGuide = myViewController.bottomLayoutGuide;

的NSDictionary * viewsDictionary = NSDictionaryOfVariableBindings(按钮,bottomGuide);

[myViewController.view addConstraints:

[NSLayoutConstraint constraintsWithVisualFormat:@“V:[按钮] -20 [bottomGuide]”

选项​​:0

衡量标准:无

浏览次数:viewsDictionary]

self.view layoutSubviews; //你必须在这里调用此方法或系统引发一个异常

];

重要提示: 如果你在一个故事板文件中定义自动布局的限制,以及编程,它是你的责任,以确保限制不冲突。如果他们发生冲突时,系统可能会抛出运行时异常。

要使用无使用约束底部布局引导,取得指导的相对位置必然包含视图的底部。在使用视图控制器的子类的情况下,获得你需要如下的数字:
- (无效)viewDidLayoutSubviews {

CGRect viewBounds = self.view.bounds;

CGFloat bottomBarOffset = self.bottomLayoutGuide.length;

}

在使用视图的子类的情况下,得到所需要如下的数字:
- (无效)layoutSubviews {

[超级layoutSubviews]; //你必须调用super这里或系统引发一个异常

CGRect边界= self.bounds;

CGFloat bottomBarOffset = myVCReference.bottomLayoutGuide.length;

}

有关使用视图控制器中的iOS 7更多的指导,请阅读 “使用视图控制器” 中 的iOS
7的用户界面过渡指南 。

childViewControllers

的视图控制器是在视图控制器层次结构的接收机的孩子们的数组。(只读)


definesPresentationContext(按照自己的理解稍作修改)

一个布尔值,表示该视图控制器的视图(是否)被覆盖时,视图控制器或它的子类是否提供了一个视图控制器。

当提出一个视图控制器,内部(监督办公室)开始(与)呈现视图控制器,并询问其是否愿意提供演示环境。如果呈现视图控制器不提供上下文,那么iOS(的)就要求呈现视图控制器的父视图控制器。iOS(的)搜索起来,通过视图控制器层次结构,直到一个视图控制器提供了一个演示环境。如果没有视图控制器(提供了)提供一个背景下,窗口的根视图控制器提供演示环境。

如果视图控制器返回
YES
,那么它提供了一个演示环境。覆盖视图控制器的视图窗口的部分决定了呈现视图控制器的视图的大小。此属性的默认值是
NO



edgesForExtendedLayout

表示扩展边缘要用于布局。

默认值是
UIRectEdgeAll


editing

一个布尔值,表示视图控制器当前是否允许用户编辑视图的内容。

如果
,视图控制器目前可编辑; 否则,
NO


如果视图是可编辑和相关的导航控制器包含一个编辑完成的按钮,然后会显示完成按钮; 否则,将显示一个编辑按钮。点击任一按钮切换这个属性的状态。通过设置导航项目的自定义左侧或右侧以期在返回的值添加一个编辑按钮完成
editButtonItem
方法。设定的
编辑
属性视图的初始状态。使用
setEditing:动画:
方法的操作方法是否已经显示的视图设置动画这种状态的过渡。


extendedLayoutIncludesOpaqueBars

表示扩展布局是否包括不透明条。

默认值是
NO



hidesBottomBarWhenPushed

一个布尔值,指示工具栏在屏幕的底部是否隐藏在视图控制器推到导航控制器。

增加一条,作为导航控制器的子视图控制器可以在屏幕底部显示一个可选的工具栏。最上面的视图控制器上该属性的值决定了工具栏是否可见。如果此属性的值是
YES
,该工具栏被隐藏。如果该属性的值是
NO
时,指示条是否可见。


interfaceOrientation

便利性,提供了接口的电流方向,意义只有在视图控制器占用了整个屏幕。(只读)

请不要使用此属性告知布局决策。相反,使用
statusBarOrientation
财产,所描述 的UIApplication类参考

对于可能的值
interfaceOrientation
财产的描述
UIInterfaceOrientation
枚举。


modalInPopover

一个布尔值,表示该视图控制器应该由popover模态呈现。

该属性的默认值是
NO
。将其设置为
YES
导致拥有popover控制器同时显示,不允许该视图控制器外的相互作用。您可以使用此行为,以确保popover不被popover控制器外部的水龙头驳回。

modalPresentationCapturesStatusBarAppearance

指定一个视图控制器是否出现非全屏,接管的状态栏从外观上呈现的视图控制器控制。
默认值是
NO


当你通过调用呈现视图控制器
动画:完成:presentViewController
方法,状态栏的外观控制从呈现的呈现视图控制器只有在提出控制器的传输
modalPresentationStyle
UIModalPresentationFullScreen
。通过设置这个属性为
YES
,则指定的呈现视图控制器控制状态栏的外观,即使出现非全屏。

系统会忽略一个视图控制器呈现全屏这个属性的值。

modalPresentationStyle

演示文稿样式呈现模态视图控制器。

演示文稿的风格决定如何呈现模态视图控制器屏幕上显示出来。在iPhone和iPod touch,模态视图控制器始终呈现全屏,但是在iPad上有几种不同的显示选项。对于可能的呈现样式的列表,以及它们与现有的过渡风格的兼容性,请参见
“模态呈现方式”
不断描述。

modalTransitionStyle

过渡风格呈现接收器时使用。

这个属性决定了视图控制器在屏幕上的动画时,使用的是
presentViewController:动画:完成:
方法。要更改过渡类型,则必须将此属性呈现视图控制器之前设置。此属性的默认值是
UIModalTransitionStyleCoverVertical


对于可能的过渡样式的列表,以及它们与现有的演示文稿样式的兼容性,请参阅
“演示过渡样式”
不断描述。

navigationController

最近的祖先在视图控制器层次结构是一个导航控制器。(只读)

如果接收方或其祖先之一是导航控制器的孩子,这个属性包含拥有导航控制器。这个属性是
,如果视图控制器未嵌入导航控制器内。

navigationItem

导航项目用来表示在父母的导航栏视图控制器。(只读)

这是唯一的实例
UINavigationItem
创建代表视图控制器,当它推到导航控制器。第一次的属性被访问时,
UINavigationItem
对象被创建。因此,你不应该,如果你不使用导航控制器显示的视图控制器访问该属性。为确保导航项配置,您可以覆盖此属性,并添加代码来创建栏按钮项目首次被访问时,或者创建您的视图控制器的初始化代码的项目。

避免追平创作栏按钮的项目在你的导航项目,以创建您的视图控制器的看法。视图控制器的视图的视图控制器的导航项目可单独检索。例如,推到一个导航堆栈2视图控制器时,最上面的视图控制器变得可见,但其他视图控制器的导航项目可检索以目前的后退按钮。

默认行为是创建一个显示视图控制器的标题导航项目。

nibBundle

返回接收器的笔尖包的名称(如果存在)。(只读)
nibName

返回接收器的笔尖文件的名称,如果指定。(只读)

此属性包含在初始化时指定的值
initWithNibName:包:
方法。该属性的值可能是


如果您使用的是榫文件来存储您的视图控制器的观点,建议您初始化您的视图控制器时,明确指定榫文件。不过,如果你不指定笔尖名,不重写
的loadView
在你的自定义子类的方法,对于笔尖文件视图控制器搜索使用其他手段。具体来说,它会寻找适当的名称(不带nib文件
笔尖
扩展名)和护理文件,只要它认为被请求负载。具体来说,它看起来(按顺序)与下列名称之一榫文件:

如果视图控制器类名与字“控制器”结尾,如
MyViewController
,它看起来的笔尖文件,其名称不包含“控制”相匹配的类名,如
MyView.nib


它看起来的笔尖文件,其名称相匹配的视图控制器类的名称。例如,如果类名是
MyViewController
,它会寻找
MyViewController.nib
文件。

注: 笔尖的名字,其中包括一个平台特定的标识符,如
〜iPhone
iPad的〜
只能在相应类型的设备加载。例如,笔尖名
MyViewController〜ipad.nib
只在iPad上加载。如果您的应用程序支持的平台类型,你必须为每个平台的笔尖文件的版本。

parentViewController

接收者的父视图控制器。(只读)

如果收件人是一个容器视图控制器的孩子,这个属性保存的是包含在视图控制器,如果收件人没有父母,在这个属性的值是


在此之前的iOS 5.0,如果视图没有父视图控制器和正在呈现,将返回的呈现视图控制器。在iOS 5,这个问题不再出现。相反,使用
presentingViewController
属性来访问呈现视图控制器。

preferredContentSize

首选内容大小为任何容器认为是奠定了子视图控制器。

@属性(非原子) CGSize preferredContentSize

presentedViewController

在提出这个视图控制器,或者它的视图控制器层次结构的一个祖先的视图控制器。(只读)

@属性(非原子,只读) 的UIViewController * presentedViewController

presentingViewController

在提出这个视图控制器视图控制器。(只读)

如果收到此消息的视图控制器被另一个视图控制器介绍,这个属性保存的视图控制器所呈现它。如果视图控制器未提出的,但它的祖先之一被提出,这个属性保存的视图控制器提出的最近的祖先。如果没有视图控制器,也没有任何始祖被提出,这个属性包含


providesPresentationContextTransitionStyle

一个布尔值,表示是否视图控制器定义它呈现视图控制器的过渡风格。

当一个视图控制器提供了一个表达上下文所呈现的视图控制器,它可以选择重写呈现视图控制器的过渡风格并以自己的。如果此属性的值是
YES
,那么它自己的模式转变风格时则使用提供了上下文所呈现的视图控制器。如果此属性的值是
NO
,所呈现的视图控制器的模式转变作风则模态过渡样式。默认值是
NO


restorationClass

这个类负责时恢复应用程序的状态,重新创建该视图控制器。

如果一个视图控制器具有相关联的恢复课,
viewControllerWithRestorationIdentifierPath:编码器:
这个类的方法时的状态恢复时调用。这个方法是负责返回指定的视图控制器相匹配的视图控制器对象。如果没有指定恢复类的视图控制器,状态恢复引擎要求您的应用程序的委托,提供视图控制器对象来代替。

恢复类必须符合
UIViewControllerRestoration
协议。

restorationIdentifier

该标识符,确定视图控制器是否支持状态恢复。

@属性(非原子,副本) 的NSString * restorationIdentifier

讨论

此属性显示视图控制器及其内容是否应该予以保留,并用于在还原过程中,以确定视图控制器。这个属性的值是
默认情况下,这表明视图控制器应该不会被保存。指定一个字符串对象的属性可以让系统知道,视图控制器应该被保存。此外,该字符串的内容的方式来确定该视图的控制器的目的。

在随后的发布会,UIKit中要求您的应用程序在重新创建已安装上一次你的应用程序运行视图控制器的帮助。当它要求一个特定的视图控制器,UIKit中提供了这个恢复标识符和在视图控制器层次结构中的任何父视图控制器恢复标识您的应用程序。您的应用程序必须使用这些信息来创建或找到合适的视图控制器对象。

重要提示: 只需设置该属性的值是不够的,以确保视图控制器将被保留和恢复。所有的父视图控制器还必须有一个恢复的标识符。有关保护和恢复过程的详细信息,请参阅 视图控制器编程指南适用于iOS

sea rchDisplayController

与视图控制器相关联的搜索显示控制器。(只读)

@属性(非原子,只读,保留) UISearchDisplayController *
searchDisplayController

讨论

该属性反映了价值
searchDisplayController
您在Interface Builder中设置的电源插座。如果您以编程方式创建你的搜索显示控制器,这个属性被自动设置的搜索显示控制器,当它被初始化。

splitViewController

最近的祖先在视图控制器层次结构是一个拆分视图控制器。(只读)

@属性(非原子,只读,保留) UISplitViewController *
splitViewController

讨论

如果接收方或其祖先之一就是拆分视图控制器的孩子,这个属性包含拥有拆分视图控制器。这个属性是
,如果视图控制器未嵌入拆分视图控制器内。


storyboard

从该视图控制器起源的故事情节。(只读)

@属性(非原子,只读,保留) UIStoryboard *故事板

讨论

如果视图控制器不是从情节串连图板实例化,这个属性是



tabBarController

最近的祖先在视图控制器层次结构是一个标签栏控制器。(只读)

@属性(非原子,只读,保留) 的UITabBarController *
tabBarController

讨论

如果接收方或其祖先之一就是标签栏控制器的孩子,这个属性包含所属标签栏控制器。这个属性是
,如果视图控制器是不是嵌入在标签栏控制器内。


tabBarItem

标签栏项目,代表该视图控制器,当添加到选项卡栏控制器。

@属性(非原子,保留) UITabBarItem * tabBarItem

讨论

这是唯一的实例
UITabBarItem
创建代表视图控制器时,它是一个标签栏控制器的孩子。第一次的属性被访问时,
UITabBarItem
被创建。因此,你不应该,如果你使用的不是标签栏控制器,显示视图控制器访问该属性。为了确保标签栏项目配置,您可以覆盖此属性,并添加代码来创建栏按钮项目首次被访问时,或者创建您的视图控制器的初始化代码的项目。

默认值是显示视图控制器的标题标签栏项目。


title

一个本地化的字符串,它表示该控制器管理的看法。

@属性(非原子,副本) 的NSString *标题

讨论

子类应设置标题来表示意见给用户一个人类可读的字符串。


toolbarItems

与视图控制器相关联的工具栏项。

@属性(非原子,保留) 的NSArray * toolbarItems

讨论

此属性包含数组
的UIBarButtonItem
对象和工作在同一个连词
的UINavigationController
对象。如果这个视图控制器的嵌入式导航控制器的接口里面,导航控制器显示一个工具栏,该属性标识的项目在工具栏中显示。

您可以显式设置该属性的值,或使用
setToolbarItems:动画:
方法来改变动画的可视一套工具栏项。


topLayoutGuide

表示最高的垂直程度为你屏幕上的内容,具有自动布局的限制使用。(只读)

@属性(非原子,只读,保留)ID < UILayoutSupport >
topLayoutGuide

讨论

topLayoutGuide
物业进场时,视图控制器是最前面的屏幕上。这表明了,你不希望出现的背后半透明或透明的UIKit条(如状态或导航栏)含量最高的垂直范围。此属性实现
UILayoutSupport
协议,可以使用的时候使用它作为一个约束项
NSLayoutConstraint
类。

这个属性的值是,具体而言,值
,当你查询这个属性的对象属性返回。这个值是由两种视图控制器或通过其封闭容器视图控制器(如导航或标签栏控制器)的限制,具体如下:

视图控制器不能在一个容器视图控制器限制了这个属性,以指示状态栏的底部,如果可见,否则,表示视图控制器的视图的顶部边缘。

视图控制器内的一个容器视图控制器不设置该属性的值。相反,容器视图控制器限制值来表示:

导航栏的底部,如果导航栏是可见的

状态栏的底部,如果只是一个状态栏是可见的

视图控制器的视图的顶部边缘,如果没有状态栏,也没有导航栏是可见的

如果容器的导航器的导航栏是可见的,不透明的,导航控制器,勾画出最前面的视图控制器的视图,其顶边紧靠导航栏的底部。在这种情况下,该属性的值是 。

查询您的贯彻实施中这个属性
viewDidLayoutSubviews
方法。

当铺设了故事情节的场景,顶面布置图指南的目的是在Interface Builder的大纲视图的视图控制器对象的子对象可用。添加使用Interface Builder顶部布局指南提供向后兼容到iOS 6。

至于如何以编程方式使用此属性与自动布局的例子,说你要到位置控制,使得它的顶部边缘是20分的顶面布置图的带领下。此方案适用于任何上面列出的场景。使用类似于下面的代码:
[按钮setTranslatesAutoresizingMaskIntoConstraints:NO];

ID topGuide = myViewController.topLayoutGuide;

的NSDictionary * viewsDictionary = NSDictionaryOfVariableBindings(按钮,topGuide);

[myViewController.view addConstraints:

[NSLayoutConstraint constraintsWithVisualFormat:@“V:[topGuide] -20 [按钮]”

选项​​:0

衡量标准:无

浏览次数:viewsDictionary]

self.view layoutSubviews; //你必须在这里调用此方法或系统引发一个异常

];

重要提示: 如果你在一个故事板文件中定义自动布局的限制,以及编程,它是你的责任,以确保限制不冲突。如果他们发生冲突时,系统可能会抛出运行时异常。

使用不使用约束的顶部布局指南,获得指导的相对位置必然包含视图的顶部。在使用视图控制器的子类的情况下,获得你需要如下的数字:
- (无效)viewDidLayoutSubviews {

CGRect viewBounds = self.view.bounds;

CGFloat topBarOffset = self.topLayoutGuide.length;

}

在使用视图的子类的情况下,得到所需要如下的数字:
- (无效)layoutSubviews {

[超级layoutSubviews]; //你必须调用super这里或系统引发一个异常

CGRect边界= self.bounds;

CGFloat topBarOffset = myVCReference.topLayoutGuide.length;

}

有关使用视图控制器中的iOS 7更多的指导,请阅读 “使用视图控制器” 中 的iOS
7的用户界面过渡指南 。


transitioningDelegate

的委托对象提供过渡动画和交互控制器对象。

@属性(非原子,分配)ID < UIViewControllerTransitioningDelegate >
transitioningDelegate

讨论

为了支持自定义或交互转换的视图控制器,分配一个委托对象,以这个属性。您的代表,它必须符合
UIViewControllerTransitioningDelegate
协议,然后负责提供用于管理过渡所需的对象。

view

该控制器管理的看法。

@属性(非原子,保留) 的UIView *视图

讨论

保存在这个属性的观点代表了视图控制器的视图层次的根视图。此属性的默认值是


如果您访问该属性和它的值是当前
,视图控制器会自动调用
的loadView
方法,并返回结果视图。

每个视图控制器对象是其考虑的唯一拥有者。多个视图控制器对象相同的视图对象,你一定不能关联。唯一的例外是一个容器视图控制器执行可能会增加这种观点在其自己的看法层次结构中的子视图。在添加子视图,容器必须先调用它的
addChildViewController:
方法来创建两个视图控制器对象之间的父子关系。

由于访问该属性可以使视图的自动加载,你可以使用
isViewLoaded
方法来确定是否认为目前是在内存中。与此属性,则
isViewLoaded
属性不会强制视图的装载,如果它不是当前在内存中。

的UIViewController
类可以将此属性设置为自动设置
为零
时内存不足,也当视图控制器本身终于发布了。

有关视图控制器加载和卸载怎样的视图的更多信息,请参见 “资源管理视图控制器”


类方法


attemptRotationToDeviceOrientation

试图转动所有窗口的设备的方向。

+(无效)attemptRotationToDeviceOrientation

讨论

一些视图控制器可能要使用的应用程序的特定条件,以确定哪些接口方向被支持。如果你的视图控制器这样做,当这些条件发生变化时,你的应用程序要调用这个类的方法。该系统立即尝试旋转到新的方向。


实例方法


addChildViewController:

增加了给定的视图控制器作为一个孩子。

- (无效)addChildViewController:(*的UIViewController) childController

参数
childController

视图控制器添加为一个孩子。

讨论

如果新的子视图控制器已经是一个容器视图控制器的孩子,这是从容器中被添加之前删除。

此方法仅用于通过自定义的容器视图控制器的实现被调用。如果重写此方法,则必须调用
在您的实现。


applicationFinishedRestoringState

呼吁恢复视图控制器后,其他对象解码完成。

- (无效)applicationFinishedRestoringState

讨论

在其他对象解码完成后,系统会调用此方法。这允许一个视图控制器后,其他国家的恢复,以完成安装,依托该系统,以确保从恢复存档的所有对象的状态已经被解码。

beginAppearanceTransition:动画:

告诉孩子控制它的外观是即将改变。

- (无效)beginAppearanceTransition:(BOOL) isAppearing 动画:(BOOL) 动画

参数
isAppearing

是的
,如果子视图控制器的视图即将被添加到视图层次,
NO
,如果它被删除。
动画

如果
,过渡进行动画处理。

讨论

如果要实现自定义的容器控制器,用这个方法来告诉孩子,其意见将要出现或消失。不要调用
viewWillAppear: 
viewWillDisappear: 
viewDidAppear:
viewDidDisappear:
直接。


canPerformUnwindSegueAction:fromViewController:withSender:

叫上一个视图控制器,以确定它是否要以具有展开的行动作出回应。

- (BOOL)canPerformUnwindSegueAction:(SEL)的 作用fromViewController:(*的UIViewController) fromViewController withSender:(ID) 发送

参数
动作

该行动的展开动作要调用您的视图控制器。
fromViewController

视图控制器发起的展开行动。
发送

触发该动作的对象。

返回值

是的
,如果视图控制器要处理的展开动作,否则


讨论

当系统试图找到一个视图控制器来处理具有展开行动时调用此方法。您的自定义视图控制器应该实现这个方法来告诉它要支持的展开诉讼制度。

如果你的视图控制器返回
YES
,那么一系列的步骤执行:

目标视图控制器的容器调用它的
segueForUnwindingToViewController:fromViewController:标识符:
方法来创建一个SEGUE放松视图控制器的状态。

操作方法被称为目标视图控制器。

该SEGUE被触发执行SEGUE。

新SEGUE创建从启动视图控制器到您的视图控制器过渡。创建SEGUE后,你的动作叫,然后SEGUE被调用时,


childViewControllerForStatusBarHidden

当系统需要的视图控制器用于确定状态栏隐藏/取消隐藏状态时调用。

- (的UIViewController *)childViewControllerForStatusBarHidden

返回值

视图控制器的状态栏隐藏/取消隐藏状态应该被使用。默认的返回值是


讨论

实现此方法来指定要控制的状态栏隐藏/取消隐藏状态,子视图控制器。如果返回
,或不实现此方法,在状态栏隐藏/取消隐藏状态
的自我
被使用。

如果从这个方法改变返回值,调用
setNeedsStatusBarAppearanceUpdate
方法。


childViewControllerForStatusBarStyle

当系统需要的视图控制器用于确定状态栏样式调用。

- (的UIViewController *)childViewControllerForStatusBarStyle

返回值

视图控制器的状态栏样式应该被使用。

讨论

实现此方法返回一个子视图控制器或
。如果你返回一个非空值,即视图控制器的状态栏样式。如果返回
,状态栏风格
的自我
被使用。如果此方法的返回值改变,调用
setNeedsStatusBarAppearanceUpdate
方法。


decodeRestorableStateWithCoder:

解码和还原状态相关的信息视图控制器。

- (无效)decodeRestorableStateWithCoder :( NSCoder *) 编码器

参数
编码器

的编码器对象来使用视图的状态进行解码。

讨论

不要直接调用此方法。该系统调用时状态恢复过程这种方法,这样就可以恢复你的视图控制器到以前的状态。

如果您的应用程序支持的状态恢复,重写此方法会因任何视图控制器,而您也推翻了
encodeRestorableStateWithCoder:
方法。此方法的实现应该使用任何保存状态信息的视图控制器恢复到以前的配置。如果您
encodeRestorableStateWithCoder:
方法称为
,这个方法应该同样叫
在其实施中的一些点。


didMoveToParentViewController:

后视图控制器是由一个容器视图控制器添加或删除调用。

- (无效)didMoveToParentViewController:(*的UIViewController) 母公司

参数


父视图控制器或
,如果没有父母。

讨论

您的视图控制器可以覆盖此方法时,它要应对被加入到容器中。

如果要实现自己的容器视图控制器,它必须调用
didMoveToParentViewController:
子视图控制器的方法后,过渡到新的控制器是完整的,或者,如果没有过渡,调用后立即
addChildViewController:
方法。

removeFromParentViewController
方法会自动调用
didMoveToParentViewController:
子视图控制器的方法,它消除了孩子。


didReceiveMemoryWarning

发送到应用程序时收到内存警告视图控制器。

- (无效)didReceiveMemoryWarning

讨论

您的应用程序不会直接调用此方法。相反,该 方法被调用时,系统确定可用的存储器的量是低的。

您可以覆盖此方法来释放所使用的视图控制器的任何额外的内存。如果你这样做,你的此方法的实现必须调用
执行在一些点。


didRotateFromInterfaceOrientation:

用户界面旋转后发送到视图控制器。

- (无效)didRotateFromInterfaceOrientation :( UIInterfaceOrientation ) fromInterfaceOrientation

参数
fromInterfaceOrientation

在用户界面的旧取向。对于可能的值,请参阅
UIInterfaceOrientation


讨论

子类可以重写此方法旋转后立即执行其他操作。例如,您可以使用这个方法来重新启用视图的互动,重新启动媒体播放功能,或打开昂贵的图纸或实时更新。通过这种方法被调用时,
interfaceOrientation
属性已设定为新的方向。此方法的实现必须调用
在其执行过程中的一些点。

这种方法被称为不管代码是否进行一步法或两步旋转。


disablesAutomaticKeyboardDismissal

返回一个布尔值指示是否改变时,控制电流输入视图自动关闭。

- (BOOL)disablesAutomaticKeyboardDismissal

返回值

是的
,以防止输入视图的解雇或
,如果输入视图可能被解雇。

讨论

在子类中重写此方法来允许或禁止的电流输入视图(通常是系统键盘)的解雇从控制想要的输入,以一个不改变的时候。在正常情况下,当用户点击一个需要输入视图控件,系统会自动显示该视图。攻在不想要的输入视图随后导致当前输入视图被解雇,但控制可能不会在所有情况下。您可以在这些悬案重写此方法以允许输入视图被解雇或用此方法来防止视图被驳回在其他情况下。

此方法的默认实现返回
YES
时,视图控制器的模式呈现样式设置为
UIModalPresentationFormSheet
和返回
其他显示样式。因此,该系统通常不允许键盘被解雇模态形式。


dismissViewControllerAnimated:完成:

驳回了提交由接收器的视图控制器。

- (无效)dismissViewControllerAnimated:(布尔) 标记 完成:(无效(^)(无效)) 完成

参数
标志

传递
动画的过渡。
完成

视图控制器后称为A块已经被解雇。

讨论

在呈现视图控制器负责驳回其提出的视图控制器。如果调用呈现视图控制器本身的这种方法,它会自动将消息转发给呈现视图控制器。

如果出现多个视图控制器连续,从而建立一个堆栈呈现视图控制器,呼吁视图控制器这种方法降低堆栈驳回其直接子视图控制器及以上的孩子在堆栈上的所有视图控制器。当发生这种情况,只有最上面的视图被驳回动画方式; 任何中间视图控制器简单地从堆栈中删除。最上面的观点是利用其模式过渡的风格,这可能不同于其他视图控制器使用较低栈的样式驳回。

如果您想保留的参考接收器的呈现视图控制器,获得了价值
presentedViewController
调用此方法前财产。

在建成后的处理程序被调用
viewDidDisappear:
方法被调用时所呈现的视图控制器上。


editButtonItem

返回一个栏按钮项切换的编辑和做之间的所有权和相关的状态。

- ( 的UIBarButtonItem *)editButtonItem

讨论

如果其中的自定义视图之一
navigationItem
属性设置为返回的对象,相关的导航栏会显示一个编辑按钮,如果
编辑
和完成按钮,如果
编辑
YES
。默认按钮操作调用
setEditing:动画:
方法。

encodeRestorableStateWithCoder:

编码状态相关的信息视图控制器。

- (无效)encodeRestorableStateWithCoder :( NSCoder *) 编码器

参数
编码器

编码器对象使用的视图控制器的状态进行编码。

讨论

不要直接调用此方法。在状态保存过程中,系统调用这个方法,让您的视图控制器和视图 - 控制器子的机会来保存状态相关的信息。

在决定哪些数据保存,写入视图控制器恢复到当前配置所需的数据量最小。您保存的信息应该是数据,你无法轻易重建,比如用户当前的选择。您可能还保存引用该视图控制器,使用任何数据对象,但从来没有写入数据对象本身的编码器。相反,存储足够的信息,以便您可以再次检索您的应用程序的主要数据结构中的数据对象。

重要说明: 此方法不能代替永久保存您的应用程序的数据结构到磁盘。你应该继续你的应用程序的实际数据保存到iCloud或使用现有技术的本地文件系统。此方法仅用于保存配置状态或与您的应用程序的用户界面等信息。你应该考虑你写的编码器作为吹出,并准备为它是在随后的发布会无法使用任何数据。

我们强烈建议您致电
超级
的实施过程中,在某些时候给父类的机会,以节省资料。Å
的UIViewController
对象节省了参考展示视图控制器和故事板(如果有的话),这是用于创建视图控制器。视图控制器还要求在视图层次的意见,以保存任何相关信息。然而,一个视图控制器不自动保存引用包含子视图控制器。如果要实现自定义的容器视图控制器,则必须进行编码子视图控制器对象自己,如果你希望它们被保存下来。

实现此方法可编码等可恢复对象-视图,视图控制器,并采用对象
UIStateRestoring
协议使用
encodeObject:forKey:
所提供的编码对象的方法。编码可恢复对象写入该对象的恢复标识符编码器。该标识符中的解码过程,然后用于定位对象的新版本。如果视图或视图控制器定义了它自己的版本的方法,该方法也被称为在某一时刻,使该对象可编码其自身的状态。

对于不恢复原状的对象,编码对象将其数据写入(而不是恢复标识符)到存档。这些对象必须采用
NSCoding
协议。在解码过程中,系统会创建一个与从归档中的数据初始化一个新的对象。

endAppearanceTransition

告诉它的出现改变了一个孩子的控制器。

- (无效)endAppearanceTransition

讨论

如果要实现自定义的容器控制器,用这个方法来告诉孩子该视图的过渡已经完成。

initWithNibName:包:

返回与指定的包笔尖文件新初始化的视图控制器。

- (ID)initWithNibName :( 的NSString *) nibName 束:( 一个NSBundle *) nibBundle

参数
nibName

与视图控制器关联的笔尖文件的名称。笔尖文件名 不能包含任何前导路径信息。如果指定
为零
,则
nibName
属性设置为

nibBundle

在该束要搜索的笔尖文件。这个方法看起来在包的特定语言的项目目录第一笔尖文件,其次是
资源
目录。如果这个参数是
,该方法使用如下所述定位笔尖文件的启发。

返回值

新初始化
的UIViewController
对象。

讨论

这是这个类的指定初始化。

您指定的笔尖文件未加载的时候了。这是第一次加载视图控制器的视图访问。如果你想在加载nib文件后,执行额外的初始化,覆盖
viewDidLoad中
的方法和执行任务存在。

如果指定
为零
的 nibName 参数,你不重写
的loadView
方法,nib文件的视图控制器搜索使用其他手段。见
nibName


如果您的应用程序使用故事板来定义一个视图控制器及其相关的意见,您的应用程序永远不会初始化这个类的直接对象。相反,视图控制器要么被实例化的故事情节,无论是自动当SEGUE被触发或编程时,你的应用程序调用该对象的故事板的iOS
instantiateViewControllerWithIdentifier:
方法。当从故事板实例化一个视图控制器,内部监督办公室通过调用其初始化新的视图控制器
:利用initWithCoder
方法来代替。iOS的自动设置
nibName
属性存储在故事情节中一个nib文件。

有关如何将视图控制器加载其视图的更多信息,请参见 “资源管理视图控制器”

isBeingDismissed

返回一个布尔值,表示视图控制器是否被解雇了它的一个祖先的过程。

- (BOOL)isBeingDismissed

返回值

是的
,如果视图控制器之前提出,并在被驳回它的一个祖先的过程,否则


讨论

此方法返回
从以 下方法中只调用时:

viewWillDisappear:

viewDidDisappear:


isBeingPresented

返回一个布尔值,表示视图控制器是否正在呈现由它的一个祖先的过程。

- (BOOL)isBeingPresented

返回值

是的
,如果视图控制器的出现,因为它是由另一种视图控制器,否则


讨论

此方法返回
从以 下方法中只调用时:

viewWillAppear:

viewDidAppear:


isMovingFromParentViewController

返回一个布尔值,表示该视图控制器是由其父被移除的过程。

- (BOOL)isMovingFromParentViewController

返回值

是的
,如果视图控制器正在消失,因为它是从一个容器视图控制器中删除,否则


讨论

此方法返回
从以 下方法中只调用时:

viewWillDisappear:

viewDidDisappear:


isMovingToParentViewController

返回一个布尔值,表示该视图控制器是在被添加到父进程。

- (BOOL)isMovingToParentViewController

返回值

是的
,如果视图控制器的出现,因为它增加了作为一个容器视图控制器的孩子,否则


讨论

此方法返回
从以 下方法中只调用时:

viewWillAppear:

viewDidAppear:


isViewLoaded

返回一个布尔值,表示鉴于目前是否已加载到内存中。

- (BOOL)isViewLoaded

返回值

一个布尔值,表示鉴于目前是否已加载到内存中。

讨论

调用此方法报告的观点是否被加载。不像
属性,它并不试图加载视图如果它尚未在存储器中。

的loadView

创建一个控制器管理视图。

- (无效)的loadView

讨论

你不应该直接调用此方法。视图控制器调用它时,这种方法
查看
请求,但目前财产
为零
。此方法加载或创建一个视图,并将其分配给
视图
属性。

如果视图控制器都有一个关联的nib文件,这种方法加载从笔尖文件的视图。视图控制器都有一个相关联的笔尖文件,如果
nibName
属性返回一个不
为零
的值,如果视图控制器是从故事情节实例化,如果使用显式指定它的笔尖文件时出现
initWithNibName:包:
方法或者iOS的发现在应用程序包基于视图控制器的类名名称的榫文件。如果视图控制器不具有关联的nib文件,此方法创建一个普通
的UIView
对象来代替。

如果您使用Interface Builder创建的意见和初始化视图控制器,你不能重写此方法。

您可以以手动创建你的意见重写此方法。如果你选择这样做,你的分配视图层次的根视图的
视图
属性。您创建的意见应该是唯一的实例,不应该与任何其他视图控制器对象共享。您的自定义此方法的实现不应该叫


如果你要执行你的看法任何额外的初始化,在这样做的
viewDidLoad中
的方法。

performSegueWithIdentifier:发件人:

启动与从视图控制器的故事板文件中指定的标识符的SEGUE。

- (无效)performSegueWithIdentifier :( 的NSString *) 标识 发件人:(ID) 发送

参数
标识

标识故事板文件中的SEGUE的字符串。

在Interface Builder中,您可以将标识字符串使用的检查每个SEGUE关联。该字符串仅用于定位故事板里的SEGUE。这是传递给该参数的字符串。

此方法抛出 的异常 是否存在与指定的标识符没有SEGUE。
发送

你想要的对象,用来启动SEGUE。实际SEGUE在此对象供参考。

讨论

应用程序通常不需要直接触发塞格斯。相反,配置与视图控制器相关的Interface Builder中,一个对象,如嵌在它的视图层次的控制,触发SEGUE。但是,您可以调用此方法来触发SEGUE编程,也许在回应不能在故事板的资源文件中指定一些动作。例如,你可能会从用来处理震动或加速事件的自定义操作处理程序调用它。

收到该消息后视图控制器必须已经装载从故事情节。如果视图控制器没有关联的故事情节,也许是因为你分配和初始化它自己,这个方法会抛出一个异常。

preferredInterfaceOrientationForPresentation

返回接口的方向呈现视图控制器时使用。

- ( UIInterfaceOrientation )preferredInterfaceOrientationForPresentation

返回值

接口方向与呈现视图控制器。

讨论

呈现视图控制器,全屏模式下的系统调用此方法。实施此方法时,您的视图控制器支持两个或更多个方向,但内容最好出现在这些方向之一。

如果你的视图控制器实现该方法,则当给出,其视图中示出的优选取向(尽管它可以在以后被转动到另一个支持旋转)。如果不实现此方法,该系统提供了一个使用状 态栏中的当前方向的视图控制器。

preferredStatusBarStyle

较好的状态栏风格的视图控制器。

- ( UIStatusBarStyle )preferredStatusBarStyle

返回值

à
UIStatusBarStyle
键显示您喜欢的状态栏风格的视图控制器。

讨论

您可以覆盖较好的状态栏样式通过实现一个视图控制器
childViewControllerForStatusBarStyle
方法。

如果此方法的返回值改变,调用
setNeedsStatusBarAppearanceUpdate
方法。

preferredStatusBarUpdateAnimation

指定的动画风格用于隐藏和显示的视图控制器的状态栏。

- ( UIStatusBarAnimation )preferredStatusBarUpdateAnimation

返回值

状态栏动画风格来使用; 一个来自常量
UIStatusBarAnimation
枚举。默认值是
UIStatusBarAnimationFade


讨论

这个属性发挥作用,只有当你通过改变返回值积极改变状态栏的显示/隐藏状态
prefersStatusBarHidden
方法。

prefersStatusBarHidden

指定视图控制器是否喜欢在状态栏被隐藏或显示。

- (BOOL)prefersStatusBarHidden

返回值

一个布尔值
指定的状态栏应该被隐藏。默认值是
NO


讨论

如果你改变返回值的这种方法,调用
setNeedsStatusBarAppearanceUpdate
方法。

要指定一个子视图控制器控制最佳状态栏隐藏/取消隐藏状态,实现
childViewControllerForStatusBarHidden
方法。

prepareForSegue:发件人:

通知视图控制器,一个SEGUE即将进行。

- (无效)prepareForSegue :( UIStoryboardSegue *) SEGUE 发件人:(ID) 发送

参数
SEGUE

包含有关参与SEGUE视图控制器的信息SEGUE对象。
发送

发起赛格瑞的对象。您可以使用这个参数来执行基于该控制(或其他对象)不同的行动发起的SEGUE。

讨论

此方法的默认实现不执行任何操作。您的视图控制器覆盖时,它需要相关数据传递给新视图控制器这种方法。该SEGUE对象描述的过渡,包括提及参与SEGUE两个视图控制器。

由于塞格斯可以从多个源引起,可以使用的信息 SEGUE 和 发送 的参数在你的应用程序的不同逻辑路径之间的歧义。例如,如果SEGUE源自表视图,sender参数会识别出用户点击表视图单元格。您可以使用这些信息来设置数据的目标视图控制器。

presentViewController:动画:完成:

提出了一个视图控制器。

- (无效)presentViewController:(*的UIViewController) viewControllerToPresent 动画:(布尔) 标记 完成:(无效(^)(无效)) 完成

参数
viewControllerToPresent

所呈现的视图控制器。
标志

传递
动画演示; 否则,通

完成

完成处理程序或


讨论

在iPhone和iPod touch,所提出的意见总是充满屏幕。iPad上,呈现取决于在该值
modalPresentationStyle
属性。

此方法设置
presentedViewController
属性设置为指定的视图控制器,调整大小,该视图控制器的视图,然后添加视图的视图层次结构。该意见是根据指定的过渡风格的动画在屏幕上
modalTransitionStyle
所呈现的视图控制器的性能。

在建成后的处理程序被调用
viewDidAppear:
方法被调用时所呈现的视图控制器上。

removeFromParentViewController

移除其在视图控制器层次结构父的接收器。

- (无效)removeFromParentViewController

讨论

此方法仅用于通过自定义的容器视图控制器的实现被调用。如果重写此方法,则必须调用
在您的实现。

rotatingFooterView

返回过程中的界面方向变化页脚视图过渡。

- ( UIView的 *)rotatingFooterView

返回值

页脚视图。

如果视图控制器是一个标签栏控制器,返回一个包含标签栏的视图。如果视图控制器是一个导航控制器,返回前视图控制器的页脚视图。默认实现返回
是NIL


讨论

在大多数情况下,标题的观点是导航栏和页脚的看法是标签栏。如果要实现这种方法在自定义视图控制器,有它自己的自定义页脚视图,可以覆盖此方法返回页脚视图。从该方法返回的观点应该已经是你的视图控制器的视图层次结构的一部分。

你是负责调节返回的视图以匹配目标取向的大小和位置。你会让你的视图控制器的旋转方法,如这样的改变
willAnimateRotationToInterfaceOrientation:时间:
法。

rotatingHeaderView

返回过程中的界面方向变化的标题,以便过渡。

- ( UIView的 *)rotatingHeaderView

返回值

标题视图或
,如果没有头视图。如果当前视图控制器是一个标签栏控制器,此方法返回在选定的选项卡视图控制器的头视图。如果当前视图控制器是一种导航控制器,此方法返回关联的导航栏。

讨论

在大多数情况下,标题的观点是导航栏和页脚的看法是标签栏。如果要实现这种方法在自定义视图控制器,有它自己的自定义标题视图中,可以覆盖此方法返回头来看。从该方法返回的观点应该已经是你的视图控制器的视图层次结构的一部分。

你是负责调节返回的视图以匹配目标取向的大小和位置。你会让你的视图控制器的旋转方法,如这样的改变
willAnimateRotationToInterfaceOrientation:时间:
法。


segueForUnwindingToViewController:fromViewController:标识符:

当开卷SEGUE动作需要两个视图控制器之间进行转换时调用。

- ( UIStoryboardSegue *)segueForUnwindingToViewController:(*的UIViewController) toViewController fromViewController:(*的UIViewController) fromViewController 标识符:( 的NSString *) 标识

参数
toViewController

目标视图控制器。
fromViewController

视图控制器启动的展开行动。
标识

的标识符赛格瑞。

返回值

自定义SEGUE对象,调用时,转换两个视图控制器之间。

讨论

如果实现也使用Segue公司展开自定义的容器视图控制器,则必须重写此方法。你的方法实现应该实例化并返回执行任何动画,并且是必要的放松视图控制器等步骤自定义SEGUE对象。


setEditing:动画:

设置视图控制器是否显示一个可编辑的观点。

- (无效)setEditing:(BOOL) 编辑 动画:(BOOL) 动画

参数
编辑

如果
,视图控制器应显示为可编辑视图; 否则,
NO


如果
和的的自定义视图之一
navigationItem
属性设置为通过返回的值
editButtonItem
方法,相关的导航控制器显示一个Done按钮; 否则,一个编辑按钮。
动画

如果
,动画的过渡; 否则,没有。

讨论

使用一个编辑按钮,完成子类必须覆盖此方法来改变自己的观点为可编辑状态,如果
编辑
,如果它是一个不可编辑状态
。这种方法更新其观点之前应该调用超类的实现。

空房

可提供的iOS 2.0及更高版本。

另请参阅

@property编辑

-
editButtonItem


宣称
UIViewController.h



setNeedsStatusBarAppearanceUpdate

表示该视图控制器状态栏的属性已经改变了系统。

- (无效)setNeedsStatusBarAppearanceUpdate

讨论

调用此方法,如果视图控制器的状态栏属性,如隐藏/取消隐藏状态或作风,改。如果您在动画块中调用此方法,将更改与动画块的其余动画相处。

空房

可提供的iOS 7.0及更高版本。

另请参阅

-
preferredStatusBarStyle

-
prefersStatusBarHidden


宣称
UIViewController.h



setToolbarItems:动画:

设置要与视图控制器显示的工具栏项。

- (无效)setToolbarItems :( 的NSArray *) toolbarItems 动画:(BOOL) 动画

参数
toolbarItems

该工具栏项目中内置的工具栏显示。
动画

如果
,动画工具栏上的项目变更。

讨论

查看由导航控制器管理控制器,可以使用此方法来指定导航控制器的内置工具栏工具栏项。你可以显示你的视图控制器之前设置你的视图控制器的工具栏项或之后就已经显现。


shouldAutomaticallyForwardAppearanceMethods

返回一个布尔值,表示外观的方法是否被转发到子视图控制器。

- (BOOL)shouldAutomaticallyForwardAppearanceMethods

返回值

是的
,如果外观方法被转发或
,如果他们不是。

讨论

这种方法被称为以确定是否自动转发外观相关的围堵回调子视图控制器。

默认实现返回
YES
。中的子类
的UIViewController
实现遏制逻辑类可以重写此方法来控制这些方法被转发。如果重写此方法并返回
NO
,你有责任告诉时,其意见将要出现或消失的孩子。您可以通过调用子视图控制器的
beginAppearanceTransition:动画:
endAppearanceTransition
方法。


shouldAutomaticallyForwardRotationMethods

返回一个布尔值,指示旋转的方法是否被转发到子视图控制器。

- (BOOL)shouldAutomaticallyForwardRotationMethods

返回值

是的
,如果旋转方式转发或
,如果他们不是。

讨论

这种方法被称为以确定是否自动正转有关遏制回调子视图控制器。

默认实现返回
YES
。中的子类
的UIViewController
实现遏制逻辑类可以重写此方法来控制这些方法被转发。如果重写此方法并返回
NO
,你是负责转发下面的方法来子视图控制器在适当的时间:

willRotateToInterfaceOrientation:时间:

willAnimateRotationToInterfaceOrientation:时间:

didRotateFromInterfaceOrientation:



shouldAutorotate

返回是否视图控制器的内容应自动旋转。

- (BOOL)shouldAutorotate

返回值

是的
,如果内容应转动,否则
。默认值是
YES


特别注意事项

在iOS 5的和更早版本中,默认的返回值是
NO



shouldPerformSegueWithIdentifier:发件人:

确定具有指定标识符SEGUE是否应该被触发。

- (BOOL)shouldPerformSegueWithIdentifier :( 的NSString *) 标识 发件人:(ID) 发送

参数
标识

标识触发赛格瑞字符串。

在Interface Builder中,您可以将标识字符串使用的检查每个SEGUE关联。该字符串仅用于定位故事板里的SEGUE。
发送

发起赛格瑞的对象。实际SEGUE在此对象供参考。

返回值

此方法应返回
YES
,如果赛格瑞应该被执行,
编号
是否应该被忽略。

讨论

您的视图控制器覆盖时它要控制一赛格瑞是否应该执行该方法。默认行为是允许被触发所有塞格斯。


supportedInterfaceOrientations

返回所有的视图控制器支持该接口的方向。

- ( NSUInteger )supportedInterfaceOrientations

返回值

支持哪些方向的位掩码指定。见
UIInterfaceOrientationMask
的有效位掩码值。此方法返回的值不能为


讨论

当用户改变设备的方向,系统调用根视图控制器或填充窗口最上面的介绍视图控制器这种方法。如果视图控制器支持的新方向,窗口和视图控制器旋转到新的方向。此方法只调用如果视图控制器的
shouldAutorotate
方法返回
YES


覆盖此方法来报告所有的视图控制器支持取向。一个视图控制器所支持的接口方向的默认值设置为
UIInterfaceOrientationMaskAll
为iPad成语和
UIInterfaceOrientationMaskAllButUpsideDown
为iPhone成语。

该系统相交的视图控制器的应用程序的支持倾向支持方向(由Info.plist文件或应用程序委托的确定
程序:supportedInterfaceOrientationsForWindow:
方法)来确定是否转动。


transitionCoordinator

返回一个过渡协调员。

- (ID <UIViewControllerTransitionCoordinator>)transitionCoordinator

返回值

如果活动视图控制器演示或解聘过程中调用,返回一个过渡协调员,自定义的采用对象
UIViewControllerTransitionCoordinator
协议。如果所谓的在其他时间,传递给父视图控制器的要求。

讨论

您可以覆盖此方法,但只有自定义的容器视图控制器应该永远有必要这样做。

您的覆盖通常应该先检查是否有一个适当的过渡协调员返回,并且,如果有,将其返回。如果没有适当的协调退货,叫


有关过渡协调员的更多信息,请参见 UIViewControllerTransitionCoordinator协议参考

transitionFromViewController:toViewController:时间:选择:动画:完成:

两个视图控制器的子视图控制器之间的转换。

- (无效)transitionFromViewController:(*的UIViewController) fromViewController toViewController:(的UIViewController (^)(无效)) 动画完成:(无效(^)(BOOL 完)) 完成

参数
fromViewController

一个视图控制器,其观点是目前在父母的视图层次结构可见。
toViewController

子视图控制器的视图不是当前视图中的层次结构。
时间

动画的总的持续时间,以秒为单位。如果传递零,则更改后没有他们的动画。
选项

选项说明您要执行的动画遮罩。对于有效的常量列表,请参阅
UIViewAnimationOptions

动画

含有变化的块对象提交的意见。在这里,您以编程方式更改的任何意见动画属性在视图层次结构。此块不带任何参数,也没有返回值。此参数不能为

完成

在动画完成当一个块被调用。

块采用以下参数:



YES
如果动画结束;
,如果它被跳过。

讨论

此方法将第二个视图控制器的视图的视图层次结构,然后执行在动画块中定义的动画。在动画完成后,删除第一个视图控制器从视图层次结构视图。

此方法仅用于通过自定义的容器视图控制器的实现被调用。如果重写此方法,则必须调用
在您的实现。


updateViewConstraints

当视图控制器的视图需要更新其约束调用。

- (无效)updateViewConstraints

讨论

你可以为了限制添加到视图或其子视图重写此方法在子类中。如果重写此方法,您的实现必须调用超类的实现。 UIViewController.h


viewControllerForUnwindSegueAction:fromViewController:withSender:

所谓当开卷SEGUE动作要搜索一个容器的孩子一个视图控制器来处理的展开行动。

- (的UIViewController *)viewControllerForUnwindSegueAction:(SEL)的 作用fromViewController:(*的UIViewController) fromViewController withSender:(ID) 发送

参数
动作

触发的展开动作的操作。
fromViewController

视图控制器即退绕动作的根源。
发送

启动该操作的对象。

返回值

视图控制器是要处理的展开行动。

讨论

自定义的容器视图控制器应该重写此方法,并使用它来 搜索其子的视图控制器来处理的展开行动。它通过调用执行此
fromViewController:withSender:canPerformUnwindSegueAction
方法对每个孩子。如果一个视图控制器要处理的动作,你的方法应该返回。如果没有容器的孩子要处理的展开行动,调用超类的实现,并返回该方法的结果。


viewDidAppear:

通知视图被添加到视图层次结构视图控制器。

- (无效)viewDidAppear:(BOOL) 动画

参数
动画

如果
YES
,则视图加入到使用动画的窗口。

讨论

您可以覆盖此方法来执行与呈现视图关联的其他任务。如果重写此方法,则必须调用
在你执行某个点。

注: 如果一个视图控制器是由一个popover内部视图控制器介绍,这种方法是不是呈现视图控制器上调用所提出的控制器被驳回后。


viewDidDisappear:

通知其观点从视图层次结构中移除视图控制器。

- (无效)viewDidDisappear:(BOOL) 动画

参数
动画

如果
,该视图的消失动画。

讨论

您可以覆盖此方法来执行与解雇或隐藏视图关联的其他任务。如果重写此方法,则必须调用
在你执行某个点。


viewDidLayoutSubviews

调用,以通知其观点,刚刚奠定了其子视图的视图控制器。

- (无效)viewDidLayoutSubviews

讨论

当边界更改视图控制器的视图,该视图调整其子视图的位置,然后在系统调用此方法。然而,这种方法被称为 不 指示该视图的子视图的各个布局进行了调整。每个子视图负责调整它自己的布局。

您的视图控制器可以覆盖此方法进行修改后认为,勾画出它的子视图。此方法的默认实现不执行任何操作。

空房

可提供的iOS 5.0及更高版本。

相关示例代码

HeadsUpUI
iAdInterstitialSuite

宣称
UIViewController.h



viewDidLoad中

在控制器的视图被加载到内存中调用。

- (无效)viewDidLoad中

讨论

这种方法被称为后视图控制器加载其视图层次到内存中。这种方法被称为无论从nib文件的视图层次结构是否被加载或编程方式创建
的loadView
方法。您通常覆盖此方法来对那从nib文件加载意见执行额外的初始化。


viewWillAppear:

通知视图控制器,它认为即将被添加到视图层次结构。

- (无效)viewWillAppear:(BOOL) 动画

参数
动画

如果
YES
,则视图被添加到使用的动画的窗口。

讨论

这种方法被调用之前接收的观点是要被添加到视图层次和任何动画之前被配置为显示视图。您可以覆盖此方法来执行与显示的视图关联的自定义任务。例如,您可以使用这个方法来改变状态栏的倾向或风格所呈现的视图的方向或风格协调。如果重写此方法,则必须调用
在你执行某个点。

有关详细信息如何被添加意见由视图控制器来查看层次结构和消息的出现的顺序,请参阅 “响应显示相关的通知”

注: 如果一个视图控制器是由一个popover内部视图控制器介绍,这种方法是不是呈现视图控制器上调用所提出的控制器被驳回后。


viewWillDisappear:

通知视图控制器,它认为即将从视图层次结构中移除。

- (无效)viewWillDisappear:(BOOL) 动画

参数
动画

如果
,该视图的消失被动画。

讨论

从视图层次被删除时调用此方法在响应视图。这种方法被称为视图实际上是删除之前的任何动画配置之前。

子类可以重写此方法,并用它来 提交编辑修改,辞职视图的第一响应者状态,或执行其他相关任务。例如,您可以使用这个方法来还原更改到了,在做状态栏的倾向或风格
viewDidDisappear:
当有人第一次提出的方法。如果重写此方法,则必须调用
在你执行某个点。


viewWillLayoutSubviews

所谓通知视图控制器,其观点是要布局它的子视图。

- (无效)viewWillLayoutSubviews

讨论

当视图的边界改变时,视图调整其子视图的位置。您的视图控制器可以覆盖此方法进行修改之前的观点,勾画出它的子视图。此方法的默认实现不执行任何操作。


willAnimateRotationToInterfaceOrientation:时间:

执行单步操作界面旋转前发送到视图控制器。

- (void)willAnimateRotationToInterfaceOrientation:( UIInterfaceOrientation ) interfaceOrientation duration:( NSTimeInterval ) duration

参数
interfaceOrientation

新方向的用户界面。可能的值中描述
UIInterfaceOrientation

时间

挂起的旋转的持续时间,以秒计。

讨论

这个方法是从使用旋转视图的动画块中调用。您可以覆盖此方法,并使用它来配置应该发生的视图旋转过程中额外的动画。例如,你可以用它来调整你的内容的缩放级别,改变滚动条的位置,或修改您的看法等动画的性能。

注: 适用于进出位置在不同的动画块进行滑动页眉和页脚的看法动画。

通过该方法被调用的时候,该
interfaceOrientation
属性已经设置为新的方向,并在视图的边界已被更改。因此,你可以通过执行这个方法,你的意见所需的任何额外的布局。


willMoveToParentViewController:

所谓之前的视图控制器中添加或容器视图控制器中删除。

- (无效)willMoveToParentViewController:(*的UIViewController) 母公司

参数



父视图控制器或
,如果没有父母。

当它需要知道它已被添加到一个容器的视图控制器可以覆盖此方法。

如果要实现自己的容器视图控制器,它必须调用
:willMoveToParentViewController
调用前的子视图控制器的方法
removeFromParentViewController
方法,传入的父值
为零


当您的自定义容器调用
addChildViewController:
方法,它会自动调用
willMoveToParentViewController:
要添加的视图控制器的方法为孩子添加它。


willRotateToInterfaceOrientation:时间:

发送到视图控制器之前,用户界面 开始旋转。

- (void)willRotateToInterfaceOrientation:( UIInterfaceOrientation ) toInterfaceOrientation duration:( NSTimeInterval ) duration

参数
toInterfaceOrientation

新方向的用户界面。可能的值中描述
UIInterfaceOrientation

时间

挂起的旋转的持续时间,以秒计。

讨论

子类可以重写此方法来执行其他操作之前立即转动。例如,您可以使用这个方法来禁用视图的相互作用,阻止媒体播放,或暂时关闭昂贵的图纸或实时更新。您还可以用它来 交换当前视图的一个反映新界面的方向。当这个方法被调用时,
interfaceOrientation
财产仍包含视图的原稿方向。此方法的实现必须调用
在其执行过程中的一些点。

这种方法被称为不管代码是否进行一步法或两步旋转。

常量


演讲风格转换

呈现视图控制器时可用的过渡形式。
类型定义枚举{
UIModalTransitionStyleCoverVertical =
UIModalTransitionStyle;


常量
UIModalTransitionStyleCoverVertical


当呈现的视图控制器,它认为从屏幕底部向上滑动。解雇,认为滑背下来。这是默认的过渡方式。

可在iOS 3.0及其更高版本。

UIModalTransitionStyleFlipHorizo
ntal


当呈现的视图控制器,当前视图启动从右到左横向3D翻转,造成新的观点的启发,好像它是在一个视图的后面。在被解雇时,发生翻转左到右,返回到原始视图。

可在iOS 3.0及其更高版本。

UIModalTransitionStyleCrossDissolve


当被呈现在视图控制器,当前视图淡出,而新的观点淡入同时。解雇,相似类型的交叉淡入淡出的用于返回到原始视图。

可在iOS 3.0及其更高版本。

UIModalTransitionStylePartialCurl


当呈现的视图控制器,当前视图的一个角落蜷缩起来,露出了提出意见的下方。在被解雇时,蜷缩页面随即渡过自己回到了提出意见的顶部。利用这一过渡提出一个视图本身从提出任何额外的意见阻止。

这种过渡式的支持只有在父视图控制器所展现的全屏视图,并使用
UIModalPresentationFullScreen
模式呈现的风格。尝试使用不同的外形父视图或不同的表现风格引发异常。

可提供的iOS 3.2及更高版本。


模态呈现方式

呈现视图控制器时可用的模式呈现方式。
类型定义枚举{
UIModalPresentationFullScreen =
UIModalPresentationStyle;


常量
UIModalPresentationFullScreen


视图呈现的风格,其中所提出的意见涵盖了屏幕,考虑到价值
wantsFullScreenLayout
财产。

可提供的iOS 3.2及更高版本。

UIModalPresentationPageSheet


在其中所呈现的视图的高度被设置为在屏幕的高度和视图的宽度的图呈现样式设置为屏幕的纵向方向的宽度。任何未覆盖的区域变暗,以防止用户在与你交流。(在纵向方向,这个选项是基本上相同
UIModalPresentationFullScreen
。)

可提供的iOS 3.2及更高版本。

UIModalPresentationFormSheet


视图呈现样式,其中所呈现的视图的宽度和高度比屏幕更小,该视图屏幕上居中。如果该装置是在横向方向和键盘是可见的,该图的位置被向上调节,使视图仍然可见。所有未覆盖的区域显示为灰色,以防止用户在与你交流。

可提供的iOS 3.2及更高版本。

UIModalPresentationCurrentContext


使用视图的父视图控制器相同观点的演讲风格。

当在popover呈现一个视图控制器,此演示文稿的风格,才支持的过渡风格
UIModalTransitionStyleCoverVertical
。尝试使用不同的过渡方式触发异常。但是,您可以使用其他过渡样式(除部分卷曲的过渡)如果父视图控制器不在popover。

可提供的iOS 3.2及更高版本。

UIModalPresentationCustom


这是一个自定义动画对象,以及一个可选的交互式控制对象管理的自定义视图的演讲风格。无论是动画和交互式控制对象是由视图控制器的过渡代表,它被存储在提供
transitioningDelegate
属性。

可提供的iOS 7.0及更高版本。

UIModalPresentationNone


非模式查看演示文稿或解聘。

可提供的iOS 7.0及更高版本。


例外

通过视图控制器抛出的异常。
NSString * const UIViewControllerHierarchyInconsistencyException


常量
UIViewControllerHierarchyInconsistencyException


如果视图控制器层次结构的视图层次矛盾引发。

当一个视图控制器的视图被添加到视图层次结构,系统走到视图层次地发现,有一个视图控制器的第一个父视图。该视图控制器必须是视图控制器的视图被添加的父。否则,此异常。也进行一致性检查时,视图控制器作为子项添加通过调用
addChildViewController:
方法。

它也允许一个视图控制器,它没有父增加其视图的视图层次结构。这通常是不推荐的,但是在一些特殊情况下是有用的。

可提供的iOS 5.0及更高版本。

声明中
UIViewController.h
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: