Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.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 7.1和iOS 8中出现的ViewDid是否存在影响变量设置的差异?_Ios_Objective C_Ios7_Ios8_Viewdidappear - Fatal编程技术网

iOS 7.1和iOS 8中出现的ViewDid是否存在影响变量设置的差异?

iOS 7.1和iOS 8中出现的ViewDid是否存在影响变量设置的差异?,ios,objective-c,ios7,ios8,viewdidappear,Ios,Objective C,Ios7,Ios8,Viewdidappear,在iOS 7.1中,我在ViewDidAspect方法中设置了一个整数变量。它一开始可以工作,但在导航到另一个视图控制器并返回后,我的整数变量现在设置为零。如果我将整型变量设置移动到viewDidLoad,它每次都会工作 在iOS 8中,它每次都在ViewDidDisplay方法中工作 为什么这在8中有效,而不是在7.1中有效?我无法回答iOS 7和iOS 8在视图方面的差异问题,以下是一些我希望可以查看的有用链接 回答了一个关于呼叫/事件周期的问题,其中包含一个您可能会发现有用的图形: 此链

在iOS 7.1中,我在ViewDidAspect方法中设置了一个整数变量。它一开始可以工作,但在导航到另一个视图控制器并返回后,我的整数变量现在设置为零。如果我将整型变量设置移动到viewDidLoad,它每次都会工作

在iOS 8中,它每次都在ViewDidDisplay方法中工作


为什么这在8中有效,而不是在7.1中有效?

我无法回答iOS 7和iOS 8在
视图方面的差异问题,以下是一些我希望可以查看的有用链接

回答了一个关于呼叫/事件周期的问题,其中包含一个您可能会发现有用的图形:

此链接引用了使用
UINavigationController
UIViewController
,该控制器依次管理其他
UIViewControllers
,并且
viewdide
消息在层次结构中丢失。修复方法是确保导航控制器显式调用
viewdide
,以便将其传递给子视图


不确定您的具体情况,但希望这些会有所帮助。

您是否进行过任何调试以查看是什么将其设置为零?如果这是一个属性,您可以覆盖访问器并在其中放置断点,以查看代码何时访问它。当然,这意味着您必须在代码中始终如一地使用点运算符,才能使其发挥作用。请记住,调用各种UI委托方法的确切顺序可能因版本而异(甚至在单个版本中,因情况而异)。另外,我的理解是,iOS 8比iOS 7更频繁地重新创建视图(即,重新执行viewDidLoad),因此,如果您的引用不是当前显示的视图,那么您不应该依赖ViewDidDisplay中的初始化。这是一条注释,而不是答案。没有上面评论的信誉点。请随意移动。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会无效。我已对您的答案进行了投票,这将使您超过需要评论的50个代表。将来,像这样的帖子应该作为评论,而不是回答。我让它溜走有两个原因:1-这个问题给我的印象是低质量,基本上要求提供文档链接。2-在我投票之前,你没有足够的代表发表评论。现在你知道了,所以不要再做了。@KhanhNguyen这是很好的反馈-非常感谢。