【问题标题】:viewDidLoad happens on every return to first view controller?每次返回第一个视图控制器时都会发生 viewDidLoad 吗?
【发布时间】:2014-11-12 15:14:25
【问题描述】:

我正在使用三个视图控制器,第一个称为“menuVC”,嵌入在navigation controller 中,然后是“viewVC”和“resultsVC”。我正在使用push segues 从 VC 到 VC。

现在,我的问题是,每次我从最后一个“resultsVC”返回到第一个“menuVC”时,viewDidLoadviewDidAppear 都会被激发。据我所知,navigationcontroller 场景与push segues 永远不会“poprootviewcontroller 或任何视图控制器,当我使用推送 segues.. .?还是我缺少什么?

所以,我的问题是 - 为什么我的第一个视图控制器“MenuVC”每次都加载一个新实例,而实际上我应该只是返回到“MenuVC”的同一个实例?

【问题讨论】:

  • 你如何从 resultVC 回到 menuVC。你的流程就像 menuVC->push->viewVC->push->resultVC , r8?
  • 如果你每次都推送你的视图,那么它每次都会加载新的实例,所以尝试弹出视图控制器。检查这个链接stackoverflow.com/questions/11035809/…
  • @Suhail > 是的,完全正确。从 resultVC-> 两者中的任何一个。
  • @xphobia > 谢谢,是的。我会尝试一下。但是弹出一个视图控制器会删除一些东西,不是吗?我的问题是我需要一个不被删除的 VC...

标签: ios objective-c xcode viewdidload navigationcontroller


【解决方案1】:
it depends on how to came back to the rootview controller from the last view controller. 
 you  should better use 

 UIViewController *vc=[nav viewControllers].lastObject;

 [vc.navigationController popToRootViewControllerAnimated:FALSE];

【讨论】:

  • 我正在使用 [self performSegueWithIdentifier:@"returnToVC" sender:self] 从 VC 转移到 VC。我不会转向“最后一个对象”——只是转向其他 VC 之一。
  • 好的,我尝试为我的导航控制器创建一个类,但程序完全被吓坏了。我想这不是你刚刚做的事情。但我可以看到,我需要以某种方式组织我的观点。你能给我一个简单的建议吗?
  • 好的,几天后,我的具体大脑慢慢明白了......感谢您的帮助!我的 viewdidload 和 viewdidappear 都遇到了问题,但我认为它很快就会到位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 2020-08-18
相关资源
最近更新 更多