我的项目正在使用ARC和目标c。
我遇到了麻烦在我的scrollview中创建的ViewControllers。他们不会被删除
完全。
我所做的是我在主要内部创建了一个 UIScrollView
视图控制器。然后我创建了另外两个ViewControllers。
我将2个viewControllers放在UIScrollView中,如下所示:
ViewController1 * test1 = [[ViewController1 alloc] init];
ViewController2 * test1 = [[ViewController2 alloc] init];
[scrollview addSubview:test1.view];
[scrollview addSubview:test2.view];
它可以工作,我可以从viewControllers中看到我的两个设计。但是当我尝试从主viewController中删除两个viewControllers并稍后将它们添加回来时会创建新的视图,但下面仍然存在相同的旧视图。我想从主viewController中完全删除它们并改为创建新的。
我正在那样删除它们:[test1 removeFromParentViewController];
[test2 removeFromParentViewController];
[test1.view removeFromSuperview];
[test2.view removeFromSuperview];
我第二次添加新视图的代码就像第一次一样,但这里是:
ViewController1 * test1 = [[ViewController1 alloc] init];
ViewController2 * test1 = [[ViewController2 alloc] init];
[scrollview addSubview:test1.view];
[scrollview addSubview:test2.view];
但我只是在删除完成后才这样做。
固定IT :
问题是我使用的是基于块的通知处理程序,有时会阻止应用程序调用dealloc来释放我的viewcontrollers。我测试过任何使用基于块的东西会阻止应用程序调用dealloc修复是停止/释放基于块的通知,然后对视图进行删除调用。
答案 0 :(得分:0)
固定IT:
问题是我使用的是基于块的通知处理程序,有时会阻止应用程序调用dealloc来释放我的viewcontrollers。我测试过任何使用基于块的东西会阻止应用程序调用dealloc修复是停止/释放基于块的通知,然后对视图进行删除调用。