在 IOS 4.x 或更低版本中,将子视图添加到视图时不会调用 viewDidAppear 方法,为什么?
在 iOS 4.x 或更低版本中,viewDidAppear 和 viewWillAppear、viewDidDisappear 和 viewWillDisappear 等 ViewController 的委托方法不会被调用。相同的方法在 iOS 5.x 上也可以正常工作。
为什么?这是 iOS 4.x 或更低版本中的错误吗?因为在 iOS 5.x 中,所有这些方法都会以正确的方式和顺序调用。
提前致谢, 姆鲁纳尔
In iOS 4.x or lower, viewDidAppear and viewWillAppear, viewDidDisappear and viewWillDisappear, such ViewController's delegate methods are not getting called. The same methods work fine with the iOS 5.x.
Why? Is it a bug in iOS 4.x or lower. Because in iOS 5.x all those methods gets called in proper manner and sequence.
Thanks in advance,
Mrunal
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于 IOS4.xi 使用 UINavigationController 委托方法如下:
我希望这有帮助!
For IOS4.x i use the UINavigationController delegate methods like this:
I hope this helps!
如果您的视图控制器是另一个视图控制器的子视图(即它是 UIViewController 内的 UINavigationController,反之亦然等),则子视图控制器的 viewDidAppear、viewWillAppear 等方法将不会被调用。解决方案是让家长像这样调用他们:
我知道 iOS 4.3 会发生这种情况。在 iOS 5 中,有一组新方法专门用于处理这些情况: 实现容器视图控制器
If your view controller is a child of another view controller, (i.e. it's a UINavigationController inside a UIViewController, or vice versa, etc.), the child's viewDidAppear, viewWillAppear, etc. methods will not get called. The solution is to have the parent call into them like:
I know this happens through iOS 4.3. In iOS 5 there is a new set of methods specifically for handling these cases: Implementing a Container View Controller