Her*_*mps 28
我发现以下方法对我有用.请注意,我使用ARC,但不确定这是否对解决方案有很大影响.首先,在app delegate类中,application:didFinishLaunchingWithOptions:
我使用以下代码行捕获初始Storyboard实例:
_initalStoryboard = self.window.rootViewController.storyboard;
Run Code Online (Sandbox Code Playgroud)
(显然有一个实例变量UIStoryboard* _initalStoryboard;
)
然后我在我的app delegate中定义了以下函数:
- (void)resetWindowToInitialView
{
for (UIView* view in self.window.subviews)
{
[view removeFromSuperview];
}
UIViewController* initialScene = [_initalStoryboard instantiateInitialViewController];
self.window.rootViewController = initialScene;
}
Run Code Online (Sandbox Code Playgroud)
请注意for循环中删除所有子视图window
.UIWindow rootViewController文档说明:
如果窗口具有现有视图层次结构,则在安装新视图之前将删除旧视图.
但是我没有发现这种情况......所以在分配新的rootViewController之前我自己删除了现有的视图.使用这种方法我没有发现任何令人担忧的副作用或内存泄漏.我绝不是UIKit神奇的专家所以如果你打算自己使用它,我建议你测试并重新测试这个解决方案.干杯
归档时间: |
|
查看次数: |
7377 次 |
最近记录: |