【发布时间】:2012-07-21 05:20:21
【问题描述】:
当 UIViewController 呈现另一个视图控制器时,在 iOS 5 下,呈现的视图控制器关闭自身的最简单方法是调用:
[[self presentingViewController] dismissViewControllerAnimated:YES completion:NULL];
另一方面,Apple 的 View Controller Programming Guide 说:
当需要关闭呈现的视图控制器时,首选方法是让呈现的视图控制器关闭它。换句话说,只要有可能,呈现视图控制器的同一个视图控制器也应该负责解除它。 虽然有几种技术可以通知呈现视图控制器其呈现的视图控制器应该被解除,但首选技术是委托。
这导致这里的一些答案建议坚持制定新的协议和委托,即使只呈现一个非常简单的视图控制器。为什么这是文档的“首选技术”而不是上面的单行?使用委托/协议技术编写的代码大量增加的缺点是否有任何抵消优势?显然,如果来自呈现的视图控制器的信息需要传递回呈现的视图控制器委托是一种很好的技术。但是,信息是委托的原因,而不是简单地从屏幕上删除呈现的视图控制器。
【问题讨论】:
标签: ios cocoa-touch uiviewcontroller