0

假设我有 ViewA 和 ViewB 并且我正在使用模态视图控制器,例如

[ViewA presentModalViewController:ViewB animated:YES]

然后为了解除 ViewB,

[self dismissModalViewControllerAnimated:YES] 

被调用

问题

这里self是什么意思。是ViewB还是ViewA。

我们应该把代码放在哪里?它应该在 ViewA 还是 ViewB 中。

4

4 回答 4

1

文档说:

“呈现视图控制器负责关闭它呈现的视图控制器。但是,如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现视图控制器。”

因此,self任何对象是否包含您引用的代码,但无论哪种方式,消息最终都由 ViewA 处理。

(请注意,文档还说这是一种已弃用的方法。)

于 2012-05-17T14:09:47.013 回答
0

来自苹果文档“呈现视图控制器负责解除它呈现的视图控制器。但是,如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现视图控制器。”

很明显

于 2012-05-17T14:09:54.407 回答
0

ViewB 应该被解雇。它应该在 ViewB 的视图控制器中,因为那是模态视图控制器。

于 2012-05-17T14:07:03.287 回答
0

应将dismissModalViewController 放入您要关闭的模态视图控制器中。它负责解雇自己。

也就是说,您不应再使用模态函数。您应该使用presentViewController 和dismissViewController。模态函数已被弃用,可能很快就会被删除。

于 2012-05-17T15:49:08.013 回答