【问题标题】:view will/did appear called when reappearing视图将/确实在重新出现时出现调用
【发布时间】:2014-11-15 18:41:36
【问题描述】:

是只有我还是大家都一样?似乎在 XCode6/iOS8 sdk 中,“后”视图控制器的 viewWill/DidAppear:在“前”和呈现的视图控制器之后调用的动画消息被弹出。

我记得很清楚,在XCode5/iOS7 sdk中重新出现时没有调用这两个。

我新建了一个测试项目(主/从模板),只添加了6行代码:

-(void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  NSLog(@"%@: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
}

-(void)viewDidAppear:(BOOL)animated{
  [super viewDidAppear:animated];
  NSLog(@"%@: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd));
}

【问题讨论】:

  • 您是指解雇模态VC的情况吗?如果是这样,那么我认为即使在 iOS7 中模式被关闭时,也会调用呈现 VC 的 viewWillAppearviewDidAppear
  • 我的意思是popViewController。在做popViewController之后,重新出现的vc的viewDid/WillAppear:animated被调用。

标签: ios ios7 uiviewcontroller ios8


【解决方案1】:

这是viewWillAppear:viewDidAppear: 自从推出以来的预期行为。当视图...出现时调用它们。

【讨论】:

  • NO,根据 Apple 的文档:This method is called before the receiver's view is about to be added to a view hierarchy and before any animations are configured for showing the view.
  • 那就错了。使用 viewdidload 和 viewdidunload。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多