Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 用动画替换根viewController时出现内存警告_Ios_Objective C - Fatal编程技术网

Ios 用动画替换根viewController时出现内存警告

Ios 用动画替换根viewController时出现内存警告,ios,objective-c,Ios,Objective C,我可以看到,当我在没有动画的情况下替换根viewController时,一切都很好,但是当我向其添加动画时,它当然看起来更好,但在转换时它会给我一个内存警告 我使用的是iPad Air,我想这是因为当时堆栈中有两个视图?? 我应该忽略它,还是我能做些什么 UIViewController *mainV=[self.storyboard instantiateViewControllerWithIdentifier:@"mainView"]; AppDelegate *delegate

我可以看到,当我在没有动画的情况下替换根viewController时,一切都很好,但是当我向其添加动画时,它当然看起来更好,但在转换时它会给我一个内存警告

我使用的是iPad Air,我想这是因为当时堆栈中有两个视图?? 我应该忽略它,还是我能做些什么

 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动画不放在主线程中是一个糟糕的做法,你不这样做,我不明白为什么它会改变一件事。(事实上,这让情况变得更糟)。