我有一个模态UIViewController
。
收到低内存警告后,我想关闭该模式。
为此,我写了以下代码 -
- (void)didReceiveMemoryWarning
{
[self dismissViewControllerAnimated:YES completion:nil];
[super didReceiveMemoryWarning];
}
在大多数情况下这很好用。但是,当我初始化视图控制器但尚未在屏幕上显示它,并且当时发生内存警告时,代码执行继续,模式不会因为尚未显示而被解雇,而当我的执行到达它呈现的点,模态仍然出现。
如何处理此方案并阻止显示模式?如果问题不明确,请告诉我 - 我会尽力解释一下。
答案 0 :(得分:0)
可以根据以下代码检查结果......
- (void)didReceiveMemoryWarning
{
if(!self.myVC)
{
[self presentViewController:myVC animated:NO
completion:
{ [self dismissViewControllerAnimated:NO completion:nil];}];
}
else
[self dismissViewControllerAnimated:YES completion:nil];
}
答案 1 :(得分:0)
当您收到内存警告并且未显示模态时,您可以释放模态视图控制器并将其等同为nil。您可以在呈现模态视图后设置一个bool,并在didReceiveMemoryWarning中使用它来关闭已经呈现的模态视图。
-(void)didReceiveMemoryWarning
{
if(!_isModalPresnted)
{
[_modalViewController release]
_modalViewController = nil;
}
else
{
[self dismissViewControllerAnimated:YES completion:nil];
}
}
因此,当您的执行达到呈现的位置时,您可以进行检查
if(_modalViewController)
{
_isModalPresnted = YES;
[self presentViewController:_modalViewController animated:YES completion:nil];
}