UIViewController
指定视图控制器是否应自动调整滚动视图的插图。
默认值是YES
,允许视图控制器来调整以响应状态栏,导航栏占用的屏幕区域的滚动视图插图和工具栏和标签栏。设置为NO
,如果你要管理滚动视图插入调整自己,比如当在视图层次以上的滚动视图。
表示最低垂直范围为你的屏幕上的内容,具有自动布局的限制使用。(只读)
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的用户界面过渡指南。
的视图控制器是在视图控制器层次结构的接收机的孩子们的数组。(只读)
一个布尔值,表示该视图控制器的视图是否被覆盖时,视图控制器或它的子类提供了一个视图控制器。
当提出一个视图控制器,内部监督办公室开始与呈现视图控制器,并询问其是否愿意提供演示环境。如果呈现视图控制器不提供上下文,那么iOS的要求呈现视图控制器的父视图控制器。iOS的搜索起来,通过视图控制器层次结构,直到一个视图控制器提供了一个演示环境。如果没有视图控制器提供了提供一个背景下,窗口的根视图控制器提供演示环境。
如果视图控制器返回YES
,那么它提供了一个演示环境。覆盖视图控制器的视图窗口的部分决定了呈现视图控制器的视图的大小。此属性的默认值是NO
。
表示扩展边缘要用于布局。
默认值是UIRectEdgeAll
。
一个布尔值,表示视图控制器当前是否允许用户编辑视图的内容。
是
,视图控制器目前可编辑;否则,NO
。
如果视图是可编辑和相关的导航控制器包含一个编辑完成的按钮,然后会显示完成按钮;否则,将显示一个编辑按钮。点击任一按钮切换这个属性的状态。通过设置导航项目的自定义左侧或右侧以期在返回的值添加一个编辑按钮完成editButtonItem
方法。设定的编辑
属性视图的初始状态。使用setEditing:动画:
方法的操作方法是否已经显示的视图设置动画这种状态的过渡。
表示扩展布局是否包括不透明条。
默认值是NO
。
一个布尔值,指示工具栏在屏幕的底部是否隐藏在视图控制器推到导航控制器。
YES
,该工具栏被隐藏。如果该属性的值是NO
时,指示条是否可见。
便利性,提供了接口的电流方向,意义只有在视图控制器占用了整个屏幕。(只读)
statusBarOrientation
财产,所描述的UIApplication类参考。
对于可能的值interfaceOrientation
财产的描述UIInterfaceOrientation
枚举。
一个布尔值,表示该视图控制器应该由popover模态呈现。
该属性的默认值是NO
。将其设置为YES
导致拥有popover控制器同时显示,不允许该视图控制器外的相互作用。您可以使用此行为,以确保popover不被popover控制器外部的水龙头驳回。
指定一个视图控制器是否出现非全屏,接管的状态栏从外观上呈现的视图控制器控制。
NO
。
当你通过调用呈现视图控制器动画:完成:presentViewController
方法,状态栏的外观控制从呈现的呈现视图控制器只有在提出控制器的传输modalPresentationStyle
值UIModalPresentationFullScreen
。通过设置这个属性为YES
,则指定的呈现视图控制器控制状态栏的外观,即使出现非全屏。
系统会忽略一个视图控制器呈现全屏这个属性的值。
演示文稿样式呈现模态视图控制器。
“模态呈现方式”
不断描述。
过渡风格呈现接收器时使用。
这个属性决定了视图控制器在屏幕上的动画时,使用的是presentViewController:动画:完成:
方法。要更改过渡类型,则必须将此属性呈现视图控制器之前设置。此属性的默认值是UIModalTransitionStyleCoverVertical
。
对于可能的过渡样式的列表,以及它们与现有的演示文稿样式的兼容性,请参阅“演示过渡样式”
不断描述。
最近的祖先在视图控制器层次结构是一个导航控制器。(只读)
零
,如果视图控制器未嵌入导航控制器内。
导航项目用来表示在父母的导航栏视图控制器。(只读)
这是唯一的实例UINavigationItem
创建代表视图控制器,当它推到导航控制器。第一次的属性被访问时,UINavigationItem
对象被创建。因此,你不应该,如果你不使用导航控制器显示的视图控制器访问该属性。为确保导航项配置,您可以覆盖此属性,并添加代码来创建栏按钮项目首次被访问时,或者创建您的视图控制器的初始化代码的项目。
避免追平创作栏按钮的项目在你的导航项目,以创建您的视图控制器的看法。视图控制器的视图的视图控制器的导航项目可单独检索。例如,推到一个导航堆栈2视图控制器时,最上面的视图控制器变得可见,但其他视图控制器的导航项目可检索以目前的后退按钮。
默认行为是创建一个显示视图控制器的标题导航项目。
返回接收器的笔尖包的名称(如果存在)。(只读)
返回接收器的笔尖文件的名称,如果指定。(只读)
此属性包含在初始化时指定的值initWithNibName:包:
方法。该属性的值可能是零
。
如果您使用的是榫文件来存储您的视图控制器的观点,建议您初始化您的视图控制器时,明确指定榫文件。不过,如果你不指定笔尖名,不重写的loadView
在你的自定义子类的方法,对于笔尖文件视图控制器搜索使用其他手段。具体来说,它会寻找适当的名称(不带nib文件笔尖
扩展名)和护理文件,只要它认为被请求负载。具体来说,它看起来(按顺序)与下列名称之一榫文件:
如果视图控制器类名与字“控制器”结尾,如MyViewController
,它看起来的笔尖文件,其名称不包含“控制”相匹配的类名,如MyView.nib
。
它看起来的笔尖文件,其名称相匹配的视图控制器类的名称。例如,如果类名是MyViewController
,它会寻找MyViewController.nib
文件。
注:笔尖的名字,其中包括一个平台特定的标识符,如〜iPhone
或iPad的〜
只能在相应类型的设备加载。例如,笔尖名MyViewController〜ipad.nib
只在iPad上加载。如果您的应用程序支持的平台类型,你必须为每个平台的笔尖文件的版本。
parentViewController
接收者的父视图控制器。(只读)
如果收件人是一个容器视图控制器的孩子,这个属性保存的是包含在视图控制器,如果收件人没有父母,在这个属性的值是零
。
在此之前的iOS 5.0,如果视图没有父视图控制器和正在呈现,将返回的呈现视图控制器。在iOS 5,这个问题不再出现。相反,使用presentingViewController
属性来访问呈现视图控制器。
首选内容大小为任何容器认为是奠定了子视图控制器。
在提出这个视图控制器,或者它的视图控制器层次结构的一个祖先的视图控制器。(只读)
在提出这个视图控制器视图控制器。(只读)
零
。
一个布尔值,表示是否视图控制器定义它呈现视图控制器的过渡风格。
YES
,那么它自己的模式转变风格时则使用提供了上下文所呈现的视图控制器。如果此属性的值是NO
,所呈现的视图控制器的模式转变作风则模态过渡样式。默认值是NO
。
这个类负责时恢复应用程序的状态,重新创建该视图控制器。
如果一个视图控制器具有相关联的恢复课,viewControllerWithRestorationIdentifierPath:编码器:
这个类的方法时的状态恢复时调用。这个方法是负责返回指定的视图控制器相匹配的视图控制器对象。如果没有指定恢复类的视图控制器,状态恢复引擎要求您的应用程序的委托,提供视图控制器对象来代替。
恢复类必须符合UIViewControllerRestoration
协议。
该标识符,确定视图控制器是否支持状态恢复。
此属性显示视图控制器及其内容是否应该予以保留,并用于在还原过程中,以确定视图控制器。这个属性的值是零
默认情况下,这表明视图控制器应该不会被保存。指定一个字符串对象的属性可以让系统知道,视图控制器应该被保存。此外,该字符串的内容的方式来确定该视图的控制器的目的。
在随后的发布会,UIKit中要求您的应用程序在重新创建已安装上一次你的应用程序运行视图控制器的帮助。当它要求一个特定的视图控制器,UIKit中提供了这个恢复标识符和在视图控制器层次结构中的任何父视图控制器恢复标识您的应用程序。您的应用程序必须使用这些信息来创建或找到合适的视图控制器对象。
重要提示:只需设置该属性的值是不够的,以确保视图控制器将被保留和恢复。所有的父视图控制器还必须有一个恢复的标识符。有关保护和恢复过程的详细信息,请参阅视图控制器编程指南适用于iOS。
searchDisplayController
与视图控制器相关联的搜索显示控制器。(只读)
该属性反映了价值searchDisplayController
您在Interface Builder中设置的电源插座。如果您以编程方式创建你的搜索显示控制器,这个属性被自动设置的搜索显示控制器,当它被初始化。
最近的祖先在视图控制器层次结构是一个拆分视图控制器。(只读)
如果接收方或其祖先之一就是拆分视图控制器的孩子,这个属性包含拥有拆分视图控制器。这个属性是零
,如果视图控制器未嵌入拆分视图控制器内。
从该视图控制器起源的故事情节。(只读)
如果视图控制器不是从情节串连图板实例化,这个属性是零
。
最近的祖先在视图控制器层次结构是一个标签栏控制器。(只读)
如果接收方或其祖先之一就是标签栏控制器的孩子,这个属性包含所属标签栏控制器。这个属性是零
,如果视图控制器是不是嵌入在标签栏控制器内。
标签栏项目,代表该视图控制器,当添加到选项卡栏控制器。
这是唯一的实例UITabBarItem
创建代表视图控制器时,它是一个标签栏控制器的孩子。第一次的属性被访问时,UITabBarItem
被创建。因此,你不应该,如果你使用的不是标签栏控制器,显示视图控制器访问该属性。为了确保标签栏项目配置,您可以覆盖此属性,并添加代码来创建栏按钮项目首次被访问时,或者创建您的视图控制器的初始化代码的项目。
默认值是显示视图控制器的标题标签栏项目。
一个本地化的字符串,它表示该控制器管理的看法。
子类应设置标题来表示意见给用户一个人类可读的字符串。
与视图控制器相关联的工具栏项。
此属性包含数组的UIBarButtonItem
对象和工作在同一个连词的UINavigationController
对象。如果这个视图控制器的嵌入式导航控制器的接口里面,导航控制器显示一个工具栏,该属性标识的项目在工具栏中显示。
您可以显式设置该属性的值,或使用setToolbarItems:动画:
方法来改变动画的可视一套工具栏项。
表示最高的垂直程度为你屏幕上的内容,具有自动布局的限制使用。(只读)
该topLayoutGuide
物业进场时,视图控制器是最前面的屏幕上。这表明了,你不希望出现的背后半透明或透明的UIKit条(如状态或导航栏)含量最高的垂直范围。此属性实现UILayoutSupport
协议,可以使用的时候使用它作为一个约束项NSLayoutConstraint
类。
这个属性的值是,具体而言,值长
,当你查询这个属性的对象属性返回。这个值是由两种视图控制器或通过其封闭容器视图控制器(如导航或标签栏控制器)的限制,具体如下:
视图控制器不能在一个容器视图控制器限制了这个属性,以指示状态栏的底部,如果可见,否则,表示视图控制器的视图的顶部边缘。
视图控制器内的一个容器视图控制器不设置该属性的值。相反,容器视图控制器限制值来表示:
导航栏的底部,如果导航栏是可见的
状态栏的底部,如果只是一个状态栏是可见的
视图控制器的视图的顶部边缘,如果没有状态栏,也没有导航栏是可见的
如果容器的导航器的导航栏是可见的,不透明的,导航控制器,勾画出最前面的视图控制器的视图,其顶边紧靠导航栏的底部。在这种情况下,该属性的值是0
。
查询您的贯彻实施中这个属性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的用户界面过渡指南。
的委托对象提供过渡动画和交互控制器对象。
为了支持自定义或交互转换的视图控制器,分配一个委托对象,以这个属性。您的代表,它必须符合UIViewControllerTransitioningDelegate
协议,然后负责提供用于管理过渡所需的对象。
该控制器管理的看法。
保存在这个属性的观点代表了视图控制器的视图层次的根视图。此属性的默认值是零
。
如果您访问该属性和它的值是当前零
,视图控制器会自动调用的loadView
方法,并返回结果视图。
每个视图控制器对象是其考虑的唯一拥有者。多个视图控制器对象相同的视图对象,你一定不能关联。唯一的例外是一个容器视图控制器执行可能会增加这种观点在其自己的看法层次结构中的子视图。在添加子视图,容器必须先调用它的addChildViewController:
方法来创建两个视图控制器对象之间的父子关系。
由于访问该属性可以使视图的自动加载,你可以使用isViewLoaded
方法来确定是否认为目前是在内存中。与此属性,则isViewLoaded
属性不会强制视图的装载,如果它不是当前在内存中。
该的UIViewController
类可以将此属性设置为自动设置为零
时内存不足,也当视图控制器本身终于发布了。
有关视图控制器加载和卸载怎样的视图的更多信息,请参见“资源管理视图控制器”。
试图转动所有窗口的设备的方向。
一些视图控制器可能要使用的应用程序的特定条件,以确定哪些接口方向被支持。如果你的视图控制器这样做,当这些条件发生变化时,你的应用程序要调用这个类的方法。该系统立即尝试旋转到新的方向。
增加了给定的视图控制器作为一个孩子。
视图控制器添加为一个孩子。
如果新的子视图控制器已经是一个容器视图控制器的孩子,这是从容器中被添加之前删除。
此方法仅用于通过自定义的容器视图控制器的实现被调用。如果重写此方法,则必须调用超
在您的实现。
呼吁恢复视图控制器后,其他对象解码完成。
在其他对象解码完成后,系统会调用此方法。这允许一个视图控制器后,其他国家的恢复,以完成安装,依托该系统,以确保从恢复存档的所有对象的状态已经被解码。
告诉孩子控制它的外观是即将改变。
是的
,如果子视图控制器的视图即将被添加到视图层次,NO
,如果它被删除。
如果是
,过渡进行动画处理。
如果要实现自定义的容器控制器,用这个方法来告诉孩子,其意见将要出现或消失。不要调用viewWillAppear:
,viewWillDisappear:
,viewDidAppear:
或viewDidDisappear:
直接。
叫上一个视图控制器,以确定它是否要以具有展开的行动作出回应。
该行动的展开动作要调用您的视图控制器。
视图控制器发起的展开行动。
触发该动作的对象。
是的
,如果视图控制器要处理的展开动作,否则无
。
当系统试图找到一个视图控制器来处理具有展开行动时调用此方法。您的自定义视图控制器应该实现这个方法来告诉它要支持的展开诉讼制度。
如果你的视图控制器返回YES
,那么一系列的步骤执行:
目标视图控制器的容器调用它的segueForUnwindingToViewController:fromViewController:标识符:
方法来创建一个SEGUE放松视图控制器的状态。
操作方法被称为目标视图控制器。
该SEGUE被触发执行SEGUE。
新SEGUE创建从启动视图控制器到您的视图控制器过渡。创建SEGUE后,你的动作叫,然后SEGUE被调用时,
当系统需要的视图控制器用于确定状态栏隐藏/取消隐藏状态时调用。
视图控制器的状态栏隐藏/取消隐藏状态应该被使用。默认的返回值是零
。
实现此方法来指定要控制的状态栏隐藏/取消隐藏状态,子视图控制器。如果返回零
,或不实现此方法,在状态栏隐藏/取消隐藏状态的自我
被使用。
如果从这个方法改变返回值,调用setNeedsStatusBarAppearanceUpdate
方法。
当系统需要的视图控制器用于确定状态栏样式调用。
视图控制器的状态栏样式应该被使用。
实现此方法返回一个子视图控制器或无
。如果你返回一个非空值,即视图控制器的状态栏样式。如果返回零
,状态栏风格的自我
被使用。如果此方法的返回值改变,调用setNeedsStatusBarAppearanceUpdate
方法。
解码和还原状态相关的信息视图控制器。
的编码器对象来使用视图的状态进行解码。
不要直接调用此方法。该系统调用时状态恢复过程这种方法,这样就可以恢复你的视图控制器到以前的状态。
如果您的应用程序支持的状态恢复,重写此方法会因任何视图控制器,而您也推翻了encodeRestorableStateWithCoder:
方法。此方法的实现应该使用任何保存状态信息的视图控制器恢复到以前的配置。如果您encodeRestorableStateWithCoder:
方法称为超
,这个方法应该同样叫超
在其实施中的一些点。
后视图控制器是由一个容器视图控制器添加或删除调用。
父视图控制器或零
,如果没有父母。
您的视图控制器可以覆盖此方法时,它要应对被加入到容器中。
如果要实现自己的容器视图控制器,它必须调用didMoveToParentViewController:
子视图控制器的方法后,过渡到新的控制器是完整的,或者,如果没有过渡,调用后立即addChildViewController:
方法。
该removeFromParentViewController
方法会自动调用didMoveToParentViewController:
子视图控制器的方法,它消除了孩子。
发送到应用程序时收到内存警告视图控制器。
您的应用程序不会直接调用此方法。相反,该方法被调用时,系统确定可用的存储器的量是低的。
您可以覆盖此方法来释放所使用的视图控制器的任何额外的内存。如果你这样做,你的此方法的实现必须调用超
执行在一些点。
用户界面旋转后发送到视图控制器。
在用户界面的旧取向。对于可能的值,请参阅UIInterfaceOrientation
。
子类可以重写此方法旋转后立即执行其他操作。例如,您可以使用这个方法来重新启用视图的互动,重新启动媒体播放功能,或打开昂贵的图纸或实时更新。通过这种方法被调用时,interfaceOrientation
属性已设定为新的方向。此方法的实现必须调用超
在其执行过程中的一些点。
这种方法被称为不管代码是否进行一步法或两步旋转。
返回一个布尔值指示是否改变时,控制电流输入视图自动关闭。
是的
,以防止输入视图的解雇或否
,如果输入视图可能被解雇。
在子类中重写此方法来允许或禁止的电流输入视图(通常是系统键盘)的解雇从控制想要的输入,以一个不改变的时候。在正常情况下,当用户点击一个需要输入视图控件,系统会自动显示该视图。攻在不想要的输入视图随后导致当前输入视图被解雇,但控制可能不会在所有情况下。您可以在这些悬案重写此方法以允许输入视图被解雇或用此方法来防止视图被驳回在其他情况下。
此方法的默认实现返回YES
时,视图控制器的模式呈现样式设置为UIModalPresentationFormSheet
和返回无
其他显示样式。因此,该系统通常不允许键盘被解雇模态形式。
驳回了提交由接收器的视图控制器。
传递是
动画的过渡。
视图控制器后称为A块已经被解雇。
在呈现视图控制器负责驳回其提出的视图控制器。如果调用呈现视图控制器本身的这种方法,它会自动将消息转发给呈现视图控制器。
如果出现多个视图控制器连续,从而建立一个堆栈呈现视图控制器,呼吁视图控制器这种方法降低堆栈驳回其直接子视图控制器及以上的孩子在堆栈上的所有视图控制器。当发生这种情况,只有最上面的视图被驳回动画方式;任何中间视图控制器简单地从堆栈中删除。最上面的观点是利用其模式过渡的风格,这可能不同于其他视图控制器使用较低栈的样式驳回。
如果您想保留的参考接收器的呈现视图控制器,获得了价值presentedViewController
调用此方法前财产。
在建成后的处理程序被调用viewDidDisappear:
方法被调用时所呈现的视图控制器上。
返回一个栏按钮项切换的编辑和做之间的所有权和相关的状态。
如果其中的自定义视图之一navigationItem
属性设置为返回的对象,相关的导航栏会显示一个编辑按钮,如果编辑
是否
和完成按钮,如果编辑
是YES
。默认按钮操作调用setEditing:动画:
方法。
编码状态相关的信息视图控制器。
编码器对象使用的视图控制器的状态进行编码。
不要直接调用此方法。在状态保存过程中,系统调用这个方法,让您的视图控制器和视图 - 控制器子的机会来保存状态相关的信息。
在决定哪些数据保存,写入视图控制器恢复到当前配置所需的数据量最小。您保存的信息应该是数据,你无法轻易重建,比如用户当前的选择。您可能还保存引用该视图控制器,使用任何数据对象,但从来没有写入数据对象本身的编码器。相反,存储足够的信息,以便您可以再次检索您的应用程序的主要数据结构中的数据对象。
重要说明:此方法不能代替永久保存您的应用程序的数据结构到磁盘。你应该继续你的应用程序的实际数据保存到iCloud或使用现有技术的本地文件系统。此方法仅用于保存配置状态或与您的应用程序的用户界面等信息。你应该考虑你写的编码器作为吹出,并准备为它是在随后的发布会无法使用任何数据。
我们强烈建议您致电超级
的实施过程中,在某些时候给父类的机会,以节省资料。Å的UIViewController
对象节省了参考展示视图控制器和故事板(如果有的话),这是用于创建视图控制器。视图控制器还要求在视图层次的意见,以保存任何相关信息。然而,一个视图控制器不自动保存引用包含子视图控制器。如果要实现自定义的容器视图控制器,则必须进行编码子视图控制器对象自己,如果你希望它们被保存下来。
实现此方法可编码等可恢复对象-视图,视图控制器,并采用对象UIStateRestoring
协议使用encodeObject:forKey:
所提供的编码对象的方法。编码可恢复对象写入该对象的恢复标识符编码器。该标识符中的解码过程,然后用于定位对象的新版本。如果视图或视图控制器定义了它自己的版本的方法,该方法也被称为在某一时刻,使该对象可编码其自身的状态。
对于不恢复原状的对象,编码对象将其数据写入(而不是恢复标识符)到存档。这些对象必须采用NSCoding
协议。在解码过程中,系统会创建一个与从归档中的数据初始化一个新的对象。
告诉它的出现改变了一个孩子的控制器。
如果要实现自定义的容器控制器,用这个方法来告诉孩子该视图的过渡已经完成。
返回与指定的包笔尖文件新初始化的视图控制器。
与视图控制器关联的笔尖文件的名称。笔尖文件名 不能包含任何前导路径信息。如果指定为零
,则nibName
属性设置为无
。
在该束要搜索的笔尖文件。这个方法看起来在包的特定语言的项目目录第一笔尖文件,其次是资源
目录。如果这个参数是零
,该方法使用如下所述定位笔尖文件的启发。
新初始化的UIViewController
对象。
这是这个类的指定初始化。
您指定的笔尖文件未加载的时候了。这是第一次加载视图控制器的视图访问。如果你想在加载nib文件后,执行额外的初始化,覆盖viewDidLoad中
的方法和执行任务存在。
如果指定为零
的nibName参数,你不重写的loadView
方法,nib文件的视图控制器搜索使用其他手段。见nibName
。
如果您的应用程序使用故事板来定义一个视图控制器及其相关的意见,您的应用程序永远不会初始化这个类的直接对象。相反,视图控制器要么被实例化的故事情节,无论是自动当SEGUE被触发或编程时,你的应用程序调用该对象的故事板的iOSinstantiateViewControllerWithIdentifier:
方法。当从故事板实例化一个视图控制器,内部监督办公室通过调用其初始化新的视图控制器:利用initWithCoder
方法来代替。iOS的自动设置nibName
属性存储在故事情节中一个nib文件。
有关如何将视图控制器加载其视图的更多信息,请参见“资源管理视图控制器”。
返回一个布尔值,表示视图控制器是否被解雇了它的一个祖先的过程。
是的
,如果视图控制器之前提出,并在被驳回它的一个祖先的过程,否则无
。
此方法返回是
从以 下方法中只调用时:
返回一个布尔值,表示视图控制器是否正在呈现由它的一个祖先的过程。
是的
,如果视图控制器的出现,因为它是由另一种视图控制器,否则无
。
此方法返回是
从以 下方法中只调用时:
返回一个布尔值,表示该视图控制器是由其父被移除的过程。
是的
,如果视图控制器正在消失,因为它是从一个容器视图控制器中删除,否则无
。
此方法返回是
从以 下方法中只调用时:
返回一个布尔值,表示该视图控制器是在被添加到父进程。
是的
,如果视图控制器的出现,因为它增加了作为一个容器视图控制器的孩子,否则无
。
此方法返回是
从以 下方法中只调用时:
返回一个布尔值,表示鉴于目前是否已加载到内存中。
一个布尔值,表示鉴于目前是否已加载到内存中。
调用此方法报告的观点是否被加载。不像图
属性,它并不试图加载视图如果它尚未在存储器中。
创建一个控制器管理视图。
你不应该直接调用此方法。视图控制器调用它时,这种方法查看
请求,但目前财产为零
。此方法加载或创建一个视图,并将其分配给视图
属性。
如果视图控制器都有一个关联的nib文件,这种方法加载从笔尖文件的视图。视图控制器都有一个相关联的笔尖文件,如果nibName
属性返回一个不为零
的值,如果视图控制器是从故事情节实例化,如果使用显式指定它的笔尖文件时出现initWithNibName:包:
方法或者iOS的发现在应用程序包基于视图控制器的类名名称的榫文件。如果视图控制器不具有关联的nib文件,此方法创建一个普通的UIView
对象来代替。
如果您使用Interface Builder创建的意见和初始化视图控制器,你不能重写此方法。
您可以以手动创建你的意见重写此方法。如果你选择这样做,你的分配视图层次的根视图的视图
属性。您创建的意见应该是唯一的实例,不应该与任何其他视图控制器对象共享。您的自定义此方法的实现不应该叫超
。
如果你要执行你的看法任何额外的初始化,在这样做的viewDidLoad中
的方法。
启动与从视图控制器的故事板文件中指定的标识符的SEGUE。
标识故事板文件中的SEGUE的字符串。
在Interface Builder中,您可以将标识字符串使用的检查每个SEGUE关联。该字符串仅用于定位故事板里的SEGUE。这是传递给该参数的字符串。
此方法抛出的异常是否存在与指定的标识符没有SEGUE。
你想要的对象,用来启动SEGUE。实际SEGUE在此对象供参考。
应用程序通常不需要直接触发塞格斯。相反,配置与视图控制器相关的Interface Builder中,一个对象,如嵌在它的视图层次的控制,触发SEGUE。但是,您可以调用此方法来触发SEGUE编程,也许在回应不能在故事板的资源文件中指定一些动作。例如,你可能会从用来处理震动或加速事件的自定义操作处理程序调用它。
收到该消息后视图控制器必须已经装载从故事情节。如果视图控制器没有关联的故事情节,也许是因为你分配和初始化它自己,这个方法会抛出一个异常。
返回接口的方向呈现视图控制器时使用。
接口方向与呈现视图控制器。
呈现视图控制器,全屏模式下的系统调用此方法。实施此方法时,您的视图控制器支持两个或更多个方向,但内容最好出现在这些方向之一。
如果你的视图控制器实现该方法,则当给出,其视图中示出的优选取向(尽管它可以在以后被转动到另一个支持旋转)。如果不实现此方法,该系统提供了一个使用状态栏中的当前方向的视图控制器。
较好的状态栏风格的视图控制器。
à