我有一个应用程序,有很多视图和子视图。
在我的app delegate中,每次收到通知时都会打开一个子视图。 我做了很多测试: - 通知总是很好。 - 子视图总是很好创建,它永远不会是零。
但是在一两次通知之后,子视图不再显示,即使它们存在且在内存中创建良好。
我认为我对内存做错了,我可能误解了视图层次结构。
以下是创建和添加子视图的代码:
AppDelegate.h
@property (retain, nonatomic) ViewControllerNewOrder *sub;
AppDelegate.m
sub = [[ViewControllerDriverNewOrder alloc] init];
sub = [mainStoryboard instantiateViewControllerWithIdentifier:@"ViewControllerNewOrder"];
sub.view.frame = self.initialViewController.view.bounds;
[self.initialViewController.view addSubview:sub.view];
感谢您的时间和帮助!
答案 0 :(得分:0)
以下一行挽救了我的生命:
[self.window.rootViewController.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
然后我将方法removeFromSuperView添加到我需要清除的所有视图中。 当然,像我一样,你需要考虑你放置这条线的位置。
谢谢;)