我有一个 UIViewController 子类,我试图找出要覆盖的内容,以便每个对象实例只能运行一次初始化代码。
viewDidLoad方法似乎是显而易见的答案,但是问题是,如果 Controller 由于内存警告而重置了 View ,则viewDidLoad可能会运行多次。 initWithNibName:bundle:initinitWithCoder: 方法似乎也是不错的选择,但要覆盖哪一个? awakeFromNib 方法是另一个考虑因素,但它似乎没有在我的 View Controller 中执行。

有没有办法做到这一点,我失踪了?

最佳答案

您可能仍然可以使用 viewDidLoad,但在内部使用一个静态 bool 值来查看您是否已经去过那里。

static BOOL didInitialize = NO;
if (didInitialize == YES)
    return;

didInitialize = YES;
/* initialize my stuff */

10-08 15:20