假设我有 ViewA 和 ViewB 并且我正在使用模态视图控制器,例如
[ViewA presentModalViewController:ViewB animated:YES]
然后为了解除 ViewB,
[self dismissModalViewControllerAnimated:YES]
被调用
问题:
这里self是什么意思。是ViewB还是ViewA。
我们应该把代码放在哪里?它应该在 ViewA 还是 ViewB 中。
假设我有 ViewA 和 ViewB 并且我正在使用模态视图控制器,例如
[ViewA presentModalViewController:ViewB animated:YES]
然后为了解除 ViewB,
[self dismissModalViewControllerAnimated:YES]
被调用
问题:
这里self是什么意思。是ViewB还是ViewA。
我们应该把代码放在哪里?它应该在 ViewA 还是 ViewB 中。
文档说:
“呈现视图控制器负责关闭它呈现的视图控制器。但是,如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现视图控制器。”
因此,self
任何对象是否包含您引用的代码,但无论哪种方式,消息最终都由 ViewA 处理。
(请注意,文档还说这是一种已弃用的方法。)
来自苹果文档“呈现视图控制器负责解除它呈现的视图控制器。但是,如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现视图控制器。”
很明显
ViewB 应该被解雇。它应该在 ViewB 的视图控制器中,因为那是模态视图控制器。
应将dismissModalViewController 放入您要关闭的模态视图控制器中。它负责解雇自己。
也就是说,您不应再使用模态函数。您应该使用presentViewController 和dismissViewController。模态函数已被弃用,可能很快就会被删除。