Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone ViewDidDisplay/ViewWillDisplay未被调用_Iphone_Objective C_Ipad_Viewwillappear - Fatal编程技术网

Iphone ViewDidDisplay/ViewWillDisplay未被调用

Iphone ViewDidDisplay/ViewWillDisplay未被调用,iphone,objective-c,ipad,viewwillappear,Iphone,Objective C,Ipad,Viewwillappear,我有一个ViewController,它可以添加到具有子类UIViewController的其他子视图中 所以它是这样的: mainViewController | v---------v subVC1 subVC2 subVC1或subVC2都没有对其激发ViewDidDisplay/ViewWillDisplay? 主视图控制器正在应用程序委托中创建,它的视图也添加到了窗口中 这里有一个xcode项目来说明我的问题:首先,你确定你真的需要用这个UIViewContro

我有一个ViewController,它可以添加到具有子类UIViewController的其他子视图中

所以它是这样的:

mainViewController
       |
  v---------v
subVC1   subVC2
subVC1或subVC2都没有对其激发ViewDidDisplay/ViewWillDisplay? 主视图控制器正在应用程序委托中创建,它的视图也添加到了窗口中


这里有一个xcode项目来说明我的问题:

首先,你确定你真的需要用这个UIViewController层次结构来做什么吗?为什么MainViewController不能处理您的
subVC1
subVC2
负责的视图

第二,当您编写代码从主ViewController调用ViewWillDisplay/ViewDidDisplay时,将调用它们。在不了解任何有关设计的其他信息的情况下,实际上不可能建议何时调用它们,但是如果子控制器的视图在“主”视图可见时始终可见,然后从
mainViewController的viewwillappease/viewdideappease方法调用它们可能是有意义的。我看了你的代码。
因此,问题在于,当视图添加到窗口中时,将调用ViewWillAspect/ViewDidAspect,而不是它的子视图之一。

您可能需要使用viewDidLoad来实现此目的。

真的,我以前从未这样做过吗?在您的示例中,您将subVC2的视图添加到mainViewController的视图中。这不会调用ViewDidDisplay,因为将此方法添加到应用程序的“窗口”对象时会调用此方法。您在示例中还犯了两个错误:使用“init”方法初始化subVC2。我想你应该用你在笔尖上建的那一个。您需要使用initWithNibName:bundle:方法。最后一件事,当您添加subVC2的子视图时,您可能想释放它,因为您没有保留对它的任何引用。哦,我不是想使用nib,但我不应该释放subVC2,因为我只将subVC2的视图传递给addsubview方法,而不是整个viewcontroller?iPhone上的VW/DA也是这样,因为我发誓我以前从未遇到过这种情况。一行答案是-在窗口下添加navigationController.view direct,否则视图将出现,不会被调用!塔克斯。太好了,谢谢你。我有一个奇怪的实现。当视图出现时,仅调用viewdidload。