Ios 用动画替换根viewController时出现内存警告
我可以看到,当我在没有动画的情况下替换根viewController时,一切都很好,但是当我向其添加动画时,它当然看起来更好,但在转换时它会给我一个内存警告 我使用的是iPad Air,我想这是因为当时堆栈中有两个视图?? 我应该忽略它,还是我能做些什么Ios 用动画替换根viewController时出现内存警告,ios,objective-c,Ios,Objective C,我可以看到,当我在没有动画的情况下替换根viewController时,一切都很好,但是当我向其添加动画时,它当然看起来更好,但在转换时它会给我一个内存警告 我使用的是iPad Air,我想这是因为当时堆栈中有两个视图?? 我应该忽略它,还是我能做些什么 UIViewController *mainV=[self.storyboard instantiateViewControllerWithIdentifier:@"mainView"]; AppDelegate *delegate
UIViewController *mainV=[self.storyboard instantiateViewControllerWithIdentifier:@"mainView"];
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[UIView transitionFromView:delegate.window.rootViewController.view
toView:mainV.view
duration:0.75f
options:UIViewAnimationOptionTransitionCrossDissolve
completion:^(BOOL finished)
{
delegate.window.rootViewController=mainV;
}];
将代码放入dispatch_asynch并检查:-
UIViewController *mainV=[self.storyboard instantiateViewControllerWithIdentifier:@"mainView"];
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[UIView transitionFromView:delegate.window.rootViewController.view
toView:mainV.view
duration:0.75f
options:UIViewAnimationOptionTransitionCrossDissolve
completion:^(BOOL finished)
{
dispatch_async(dispatch_get_main_queue(), ^{
delegate.window.rootViewController=mainV;
});
}];
});
谢谢,但它不起作用,它使情况更糟。切换视图的那一刻,我得到了一个内存警告。将UI动画不放在主线程中是一个糟糕的做法,你不这样做,我不明白为什么它会改变一件事。(事实上,这让情况变得更糟)。