是否UIViewController调用方法presentViewController从内存中删除?

Osc*_*ata 4 memory-management uiviewcontroller ios uistoryboard

按说我有一个的UIViewController一个UIViewController中乙.从A,我调用方法presentViewController:B.当B出现时,A会发生什么?它是从内存中删除的吗?如果没有,我应该用什么方法来删除它?

如果我的UI流程是这样的,A-> B-> A-> B-> A-> B-> ...依此类推,如何防止内存相应增加?

Dan*_*tín 5

当您使用presentViewController:animated:completion:控制器中的方法AB模态方式呈现控制器时,会发生的是将presentedViewController属性A设置为controller B,并将presentingViewController属性B设置为A.因此,在进行演示时,两个控制器都保存在存储器中.

当您从去BA,你叫dismissViewControllerAnimated:completion:A通过presentingViewController的财产B,是这样的:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

(您也可以呼叫[self dismissViewControllerAnimated:YES completion:nil],系统会自动将请求转发给呈现视图控制器.)

之后,将设置为presentedViewController属性,因此,如果没有任何其他强指针指向它,系统将对其进行内存释放.Anil