调用了 awakeFromNib,未调用 viewDidLoad

awakeFromNib is called, viewDidLoad is not called

我有一个从多个地方调用的视图控制器,第一次调用它时,调用了 awakeFromNib,但没有调用 viewDidLoad。 viewWillAppear 和 viewDidAppear 每次都会被调用。

此外,视图(一个 UITableView 子类)功能正常,除了 viewDidLoad 中的任何内容显然都没有实现。

在此视图控制器中未覆盖 loadView。

用于覆盖 viewDidLoad 和 awakeFromNib 的代码:

- (void)awakeFromNib
{
// Configure for self sizing cells:
 self.tableView.estimatedRowHeight = 44;
 self.tableView.rowHeight = UITableViewAutomaticDimension;

 self.tableView.allowsSelectionDuringEditing = YES;
 self.clearsSelectionOnViewWillAppear = NO;

 self.navigationItem.title = nil;
 self.navigationItem.rightBarButtonItem = nil;
 printf("\n awake from nib \n \n ---------- \n");
}

- (void)viewDidLoad
{
 [super viewDidLoad];
 self.navigationItem.rightBarButtonItem = self.editButtonItem;
 self.tableView.allowsSelectionDuringEditing = YES;
}

怎么可能调用了 awakeFromNib 但没有调用 viewDidLoad,我该如何解决?

编辑:我收到了帮助修复它的答案,但是我想知道为什么会这样,因为它可能与我的应用程序中的错误有关。

谢谢。

这在 中有点摸不着头脑,但最终解决了问题。

确保在覆盖的方法中调用 [super awakeFromNib]