viewDidUnload不要求没有XIB文件分配/ init初始化的ViewController(

2019-09-18 03:30发布

为什么不viewDidUnload方法调用,当我不使用厦门国际银行,并使用分配/ init初始化我ViewController当我模拟内存通过模拟器在任何iOS版本的警告? 看来,如果这种方法不会被调用。

如果通过分配/ initWithNibName与厦门国际银行文件创建控制器,viewDidUnload方法成功地调用。 为什么它的发生? 厦门国际银行是否文件reqired所有viewcontrollers内存警告正常操作?

Answer 1:

viewDidUnload只要接收到内存警告,并呼吁其要求具有非可见视图每个视图控制器,如UINavigationController ,如果你把一个新的视图控制器和这个视图控制器导致内存不足的呈现视图控制器viewDidUnload将被调用(因为它的观点是不可见)

还要注意的是,如果你实现didReceiveMemoryWarning且不调用[super didReceiveMemoryWarning]; ,你viewDidUnload不会被调用

例如,如果你在你的视图控制器这

- (void)didReceiveMemoryWarning
{
    //with 
    [super didReceiveMemoryWarning]; // viewDidUnload gets called

    //without [super didReceiveMemoryWarning]; viewDidUnload does not get called
}


Answer 2:

我解决我的问题。 我没有厦门国际银行实现只需要添加以下代码:

- (void) loadView {
   UIView * myView = [[[UIView alloc] init] autorelease];
   self.view = myView;
}


Answer 3:

通过测试计划的条款约束,我认为,我们从能够讨论iOS的任何细节6 Beta版排除,但我也可能会建议您查看第6页的底部在第8页的iOS 6 Beta 1版关于viewWillUnload和viewDidUnLoad笔记。



文章来源: viewDidUnload not called for alloc/init initialized viewcontroller with no xib file