我有一个 UIViewController 子类,我试图找出要覆盖的内容,以便每个对象实例只能运行一次初始化代码。viewDidLoad
方法似乎是显而易见的答案,但是问题是,如果 Controller 由于内存警告而重置了 View ,则viewDidLoad
可能会运行多次。 initWithNibName:bundle:
、 init
和 initWithCoder:
方法似乎也是不错的选择,但要覆盖哪一个? awakeFromNib
方法是另一个考虑因素,但它似乎没有在我的 View Controller 中执行。
有没有办法做到这一点,我失踪了?
最佳答案
您可能仍然可以使用 viewDidLoad,但在内部使用一个静态 bool 值来查看您是否已经去过那里。
static BOOL didInitialize = NO;
if (didInitialize == YES)
return;
didInitialize = YES;
/* initialize my stuff */