我有一个视图控制器,它从几个地方被调用,第一次被调用时,awakeFromNib被调用,但viewDidLoad不被调用。每次都会调用viewWillAppear和viewDidAppear。awakeFromNib被调用,viewDidLoad不被调用
此外,视图(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中是不是,我怎么能解决这个问题?
编辑:我收到了一个帮助修复它的答案,但我想知道它为什么发生,因为它可能与我的应用程序中的错误有关。
谢谢。
请为这些方法添加代码。代码也是视图初始化的地方。 –
@Rage添加了代码。视图控制器在许多地方以及故事板中被实例化,所以我不相信它是问题 –
我认为它不会解决您的问题,但是您应该在您的覆盖中调用'[super awakeFromNib];''。 –