iOS-停止显示模态UIViewController
我有一个modaliOS-停止显示模态UIViewController,ios,objective-c,uiviewcontroller,low-memory,Ios,Objective C,Uiviewcontroller,Low Memory,我有一个modalUIViewController。 收到内存不足警告后,我想关闭该模式。 为此,我编写了以下代码- - (void)didReceiveMemoryWarning { [self dismissViewControllerAnimated:YES completion:nil]; [super didReceiveMemoryWarning]; } 这在大多数情况下都很有效。但是,当我已经初始化视图控制器,但尚未在屏幕上显示它,并且此时出现内存警告时,代码执行
UIViewController
。
收到内存不足警告后,我想关闭该模式。
为此,我编写了以下代码-
- (void)didReceiveMemoryWarning
{
[self dismissViewControllerAnimated:YES completion:nil];
[super didReceiveMemoryWarning];
}
这在大多数情况下都很有效。但是,当我已经初始化视图控制器,但尚未在屏幕上显示它,并且此时出现内存警告时,代码执行将继续,模式不会因为尚未显示而被取消,并且当我的执行达到显示它的点时,模式仍会显示
我如何着手处理此场景并防止模式出现?如果有不清楚的地方,请告诉我,我会尽量解释清楚。你能根据下面的代码检查结果吗
- (void)didReceiveMemoryWarning
{
if(!self.myVC)
{
[self presentViewController:myVC animated:NO
completion:
{ [self dismissViewControllerAnimated:NO completion:nil];}];
}
else
[self dismissViewControllerAnimated:YES completion:nil];
}
当收到内存警告时,如果未显示模态,则可以释放模态视图控制器并将其等于零。您可以在呈现模式视图后设置一个bool,并在didReceiveMemoryWarning中使用该bool关闭已呈现的模式视图
-(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];
}
您不想在收到内存不足警告后显示一次模式视图吗?