Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.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
Ios ViewDidLoad在导航时只调用一次_Ios_Iphone_Ios7_Uinavigationcontroller_Appdelegate - Fatal编程技术网

Ios ViewDidLoad在导航时只调用一次

Ios ViewDidLoad在导航时只调用一次,ios,iphone,ios7,uinavigationcontroller,appdelegate,Ios,Iphone,Ios7,Uinavigationcontroller,Appdelegate,我有viewcontroller。我在appdelegate.m文件中创建了它的对象,因为我想在poptoviewcontroller方法中使用该viewcontroller。现在,一旦我在appdelegate文件中创建了它的对象,当我按下viewcontroller时,它只调用viewdidload 1次。但从第二次开始,它并没有调用viewdidload。每次控制器加载时,我都要加载一些组件。怎么办??是否有其他方法可以在popToViewController方法中使用viewcontro

我有viewcontroller。我在appdelegate.m文件中创建了它的对象,因为我想在poptoviewcontroller方法中使用该viewcontroller。现在,一旦我在appdelegate文件中创建了它的对象,当我按下viewcontroller时,它只调用viewdidload 1次。但从第二次开始,它并没有调用viewdidload。每次控制器加载时,我都要加载一些组件。怎么办??是否有其他方法可以在popToViewController方法中使用viewcontroller而不在appdelegate.m文件中创建其对象

我有4个视图控制器A、B、C、D。
我正在从A导航到B。B中有一些组件正在viewdidLoad中加载。现在从A流到B流,我从组件的服务器获取值。现在,如果用户想要改变值,他将从B重定向到C来改变B组件的值。有时他会重定向到D,从D到B,用B分量值。现在,如果我将在viewwillbeen中编写我的B代码,那么当我从C返回B时,它将加载我在从A导航到B时得到的值。

您可以使用
viewwillbeen
viewdidebeen
(最后一个在第一个之后调用)。ViewDidLoad仅在构造ViewController时调用。然后,由于您让它存在于导航堆栈中,因此不再调用它

有关更多信息,请遵循以下内容

编辑

随着你的编辑,整个问题变得不同了。如果希望每次显示ViewController时都调用代理,则答案是
视图将出现
视图显示

在我看来,你把事情复杂化了。据我所知,您正在更改AppDelegate中的B?如果是这样的话,我看不出B有任何问题,当您从C来时,B有一个以前的状态,并且在
视图中更新您的状态将出现
。如果您在AppDelegate中有指向B的某种指针,并且您对其进行了更改,那么ViewWillDisplay应该不会有任何问题


对于您的问题,您可以有几种解决方案,这完全取决于您的具体情况,但我建议您更好地分离模型。您可以创建一个保存B数据的单例,并在
视图中显示该数据。然后C和D只对该单例执行更改。

您可以使用
viewwillbeen
viewdidebeen
(最后一个在第一个之后调用)。ViewDidLoad仅在构造ViewController时调用。然后,由于您让它存在于导航堆栈中,因此不再调用它

有关更多信息,请遵循以下内容

编辑

随着你的编辑,整个问题变得不同了。如果希望每次显示ViewController时都调用代理,则答案是
视图将出现
视图显示

在我看来,你把事情复杂化了。据我所知,您正在更改AppDelegate中的B?如果是这样的话,我看不出B有任何问题,当您从C来时,B有一个以前的状态,并且在
视图中更新您的状态将出现
。如果您在AppDelegate中有指向B的某种指针,并且您对其进行了更改,那么ViewWillDisplay应该不会有任何问题


对于您的问题,您可以有几种解决方案,这完全取决于您的具体情况,但我建议您更好地分离模型。您可以创建一个保存B数据的单例,并在
视图中显示该数据。然后C和D只对该单例执行更改。

您可以使用
viewwillbeen
viewdidebeen
(最后一个在第一个之后调用)。ViewDidLoad仅在构造ViewController时调用。然后,由于您让它存在于导航堆栈中,因此不再调用它

有关更多信息,请遵循以下内容

编辑

随着你的编辑,整个问题变得不同了。如果希望每次显示ViewController时都调用代理,则答案是
视图将出现
视图显示

在我看来,你把事情复杂化了。据我所知,您正在更改AppDelegate中的B?如果是这样的话,我看不出B有任何问题,当您从C来时,B有一个以前的状态,并且在
视图中更新您的状态将出现
。如果您在AppDelegate中有指向B的某种指针,并且您对其进行了更改,那么ViewWillDisplay应该不会有任何问题


对于您的问题,您可以有几种解决方案,这完全取决于您的具体情况,但我建议您更好地分离模型。您可以创建一个保存B数据的单例,并在
视图中显示该数据。然后C和D只对该单例执行更改。

您可以使用
viewwillbeen
viewdidebeen
(最后一个在第一个之后调用)。ViewDidLoad仅在构造ViewController时调用。然后,由于您让它存在于导航堆栈中,因此不再调用它

有关更多信息,请遵循以下内容

编辑

随着你的编辑,整个问题变得不同了。如果希望每次显示ViewController时都调用代理,则答案是
视图将出现
视图显示

在我看来,你把事情复杂化了。据我所知,您正在更改AppDelegate中的B?如果是这样的话,我看不出B有任何问题,当您从C来时,B有一个以前的状态,并且在
视图中更新您的状态将出现
。如果您在AppDelegate中有指向B的某种指针,并且您对其进行了更改,那么ViewWillDisplay应该不会有任何问题

对于你的问题,你可以有几种解决方案,这一切都取决于