Objective c 在什么情况下,视图将被调用?

Objective c 在什么情况下,视图将被调用?,objective-c,xcode4.5,Objective C,Xcode4.5,通常的答案是,当视图出现时 假设我有一个UIViewController。让我们称之为vc 假设我希望vc控制一个视图 所以我做vc.view=controlledView 我希望每次controlledView即将出现时,都会调用[vc ViewWillDisplay] 没有 怎么了 此外,即使在我调用viewDidLoad之后也不会调用它 [vc view] 从技术上讲,vc.view已经根据 在即将添加接收器视图之前调用此方法 到视图层次,然后再为其配置任何动画 显示视图。您可以重写此方

通常的答案是,当视图出现时

假设我有一个UIViewController。让我们称之为vc

假设我希望vc控制一个视图

所以我做vc.view=controlledView

我希望每次controlledView即将出现时,都会调用[vc ViewWillDisplay]

没有

怎么了


此外,即使在我调用viewDidLoad之后也不会调用它

[vc view]
从技术上讲,vc.view已经根据

在即将添加接收器视图之前调用此方法 到视图层次,然后再为其配置任何动画 显示视图。您可以重写此方法以执行自定义任务 与显示视图关联

在即将添加接收器视图之前调用此方法 到视图层次,然后再为其配置任何动画 显示视图。您可以重写此方法以执行自定义任务 与显示视图关联


如果您正在调用视图,则它将显示在任何其他文件中,而其他视图实例则它将永远不会调用

每次转到该视图时,VIEWWILLISPEND方法调用,如果您离开该视图,然后再次访问或返回,它将再次调用

请必须使用“Super”关键字作为。
[超级视图将出现]在WillAspect方法中。

如果您正在调用ViewWillAspect在任何其他文件中,使用其他视图实例,则它将永远不会调用

每次转到该视图时,VIEWWILLISPEND方法调用,如果您离开该视图,然后再次访问或返回,它将再次调用

请必须使用“Super”关键字作为。
WillAspect方法中的[超级视图将出现]。

ViewWillAspect
总是在视图即将出现时调用,正如名称本身所示

如果视图控制器由popover内的视图控制器呈现,则在呈现的控制器被解除后,不会在呈现的视图控制器上调用此方法

视图控制器的生命周期如下所示:

分配和加载viewcontroller时,会调用loadView,然后调用viewDidLoad。您可以看到整个流程,如图所示

请参阅此图


注意:此图像取自

视图将出现
始终在视图即将出现时调用,正如名称本身所示

如果视图控制器由popover内的视图控制器呈现,则在呈现的控制器被解除后,不会在呈现的视图控制器上调用此方法

视图控制器的生命周期如下所示:

分配和加载viewcontroller时,会调用loadView,然后调用viewDidLoad。您可以看到整个流程,如图所示

请参阅此图


注意:此图像取自正确答案如下

是否将子视图控制器添加为父子视图控制器的子视图

除非将另一个viewController声明为子视图控制器,否则将仅为父视图控制器(顶部屏幕视图控制器)调用ViewWillDisplay


然后parentViewController将传递ViewWillAspect事件。

正确答案如下

是否将子视图控制器添加为父子视图控制器的子视图

除非将另一个viewController声明为子视图控制器,否则将仅为父视图控制器(顶部屏幕视图控制器)调用ViewWillDisplay


然后parentViewController将传递ViewWillDisplay事件。

如何加载该视图?即使在我调用[vc view]后,也不会调用viewDidLoad。viewDidLoad在viewcontroller的生命周期中仅调用一次。如何加载该视图?即使在我调用[vc view]后,也不会调用viewDidLoadviewcontroller调用viewDidLoad,并且在viewcontroller的生命周期中只调用一次。注意,与其他一些答案所建议的不同,仅仅因为视图完全脱离屏幕或被覆盖,
视图将在视图“出现”时不被调用,仅当它实际添加到视图层次结构中时注意,仅因为视图完全脱离屏幕或被覆盖,
视图将在视图“出现”时出现
不会被调用,这与其他一些答案所建议的不同,仅当它实际添加到视图层次结构中时才出现。通常是这样。但是,如果将控制器视图更改为其他视图,则不会调用它。控制器没有观察到视图。不,不是。通常是这样。但是,如果将控制器视图更改为其他视图,则不会调用它。控制器没有观察到视图。很好的回答Mohit bhaiNice回答Mohit bhai