Ответ 1
Я сам столкнулся с этой проблемой. Похоже, что раскадровки не используют initWithNibName:bundle:
, но либо initWithCoder:(NSCoder *)aDecoder
, либо initWithStyle:(UITableViewStyle)style
.
Стандартные реализации двух методов выглядят следующим образом:
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
// Custom initialization
}
return self;
}
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
Мне еще нужно использовать версию initWithStyle, но я бы предположил, что он вызвал UITableViewController. Если вы сомневаетесь, вы можете просто добавить оба метода в файл вместе с вызовом NSLog(), который печатает имя метода (или любую другую уникальную строку). Затем вы можете запустить его в симуляторе, чтобы увидеть, что вызвано, и удалить другое.
Я настоятельно рекомендую не вызывать initWithNibName:bundle:
себя из любого другого метода init
. Лучше просто переместить код в правильный метод.