Ios 调用awakeFromNib,不调用viewDidLoad
我有一个视图控制器,它从几个地方被调用,第一次调用时,会调用awakeFromNib,但不会调用viewDidLoad。每次都会调用ViewWillDisplay和ViewDidDisplay 此外,视图(UITableView子类)功能正常,但viewDidLoad中的任何内容显然都没有实现 此视图控制器中未覆盖loadView 用于覆盖viewDidLoad和awakeFromNib的代码:Ios 调用awakeFromNib,不调用viewDidLoad,ios,objective-c,uitableview,xcode7,viewdidload,Ios,Objective C,Uitableview,Xcode7,Viewdidload,我有一个视图控制器,它从几个地方被调用,第一次调用时,会调用awakeFromNib,但不会调用viewDidLoad。每次都会调用ViewWillDisplay和ViewDidDisplay 此外,视图(UITableView子类)功能正常,但viewDidLoad中的任何内容显然都没有实现 此视图控制器中未覆盖loadView 用于覆盖viewDidLoad和awakeFromNib的代码: - (void)awakeFromNib { // Configure for self sizin
- (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]
。这有点像暗中捅了一刀,但最终解决了问题
确保在重写的方法中调用
[super awakeFromNib]
。这有点像暗中捅了一刀,但最终解决了问题
确保在重写的方法中调用
[super awakeFromNib]
。这有点像暗中捅了一刀,但最终解决了问题
确保在重写的方法中调用
[super awakeFromNib]
。请为这些方法添加代码。以及初始化视图的代码。@Rage添加了代码。视图控制器在许多地方以及故事板上都有实例化,因此我认为这不是问题所在。我认为它不会解决您的问题,但您应该调用[super awakeFromNib]代码>在覆盖中。@NitzanR如果视图控制器在许多地方实例化,则可能就是问题所在。调用viewDidLoad的时间可能比调用其余方法的时间早得多。然后在vc之前唤醒该视图,调用vc的setView,但由于尚未唤醒该视图,因此它尚未调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)请为这些方法添加代码。以及初始化视图的代码。@Rage添加了代码。视图控制器在许多地方以及故事板上都有实例化,因此我认为这不是问题所在。我认为它不会解决您的问题,但您应该调用[super awakeFromNib]代码>在覆盖中。@NitzanR如果视图控制器在许多地方实例化,则可能就是问题所在。调用viewDidLoad的时间可能比调用其余方法的时间早得多。然后在vc之前唤醒该视图,调用vc的setView,但由于尚未唤醒该视图,因此它尚未调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)请为这些方法添加代码。以及初始化视图的代码。@Rage添加了代码。视图控制器在许多地方以及故事板上都有实例化,因此我认为这不是问题所在。我认为它不会解决您的问题,但您应该调用[super awakeFromNib]代码>在覆盖中。@NitzanR如果视图控制器在许多地方实例化,则可能就是问题所在。调用viewDidLoad的时间可能比调用其余方法的时间早得多。然后在vc之前唤醒该视图,调用vc的setView,但由于尚未唤醒该视图,因此它尚未调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)请为这些方法添加代码。以及初始化视图的代码。@Rage添加了代码。视图控制器在许多地方以及故事板上都有实例化,因此我认为这不是问题所在。我认为它不会解决您的问题,但您应该调用[super awakeFromNib]代码>在覆盖中。@NitzanR如果视图控制器在许多地方实例化,则可能就是问题所在。调用viewDidLoad的时间可能比调用其余方法的时间早得多。然后在vc之前唤醒该视图,调用vc的setView,但由于尚未唤醒该视图,因此它尚未调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)视图在vc之前被唤醒,vc的setView被调用,但由于它还没有被唤醒,它还没有调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)——解释为什么视图在vc之前被唤醒,vc的setView会被调用,但由于它还没有被唤醒,所以它还没有调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)——解释为什么视图在vc之前被唤醒,vc的setView会被调用,但由于它还没有被唤醒,所以它还没有调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)——解释为什么视图在vc之前被唤醒,vc的setView会被调用,但由于它还没有被唤醒,所以它还没有调用viewDidLoad,而是将其延迟到唤醒。如果没有超级呼叫,它永远不会知道:)q.e.d.;)——解释为什么会这样