Так что этот меня бесит, потому что он работает в одних контроллерах представления, но не в других.У меня есть определенный контроллер представления, который имеет собственный метод init, который начинается с вызова стандартного метода initWithNibName
для инициализации представления.Однако из-за жизни я не могу заставить этот метод вызываться.Я использую код, идентичный другим контроллерам представления, которые имеют пользовательские методы init и работают нормально, но некоторые просто отказываются вызывать метод.Код, который у меня есть для контроллера, который не работает:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
И пользовательский метод init:
- (id)initWithUser:(TPUser *)selectedUser andFilterMode:(int)mode {
self = [super initWithNibName:@"RecommendationsView" bundle:nil];
if (self) {
[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"tabIcon-stream-selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabIcon-stream.png"]];
[self.tableView setSeparatorColor:[UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:0.15]];
user = selectedUser;
filterMode = mode;
if (selectedUser != nil) {
self.title = [NSString stringWithFormat:@"%@ %@", user.firstName, user.lastName];
} else {
self.title = @"Stream";
}
}
return self;
}
Код внутри пользовательского метода init вызывается (между проверкой self
), но первая строка, которая вызывает [super initWithNibName...
, никогда не вызывает метод.Я могу проверить это, поместив NSLog
внутри метода, и он никогда не будет зарегистрирован.
Как я уже сказал, это сводит меня с ума, потому что многие другие контроллеры представления в моем проекте используют собственный метод init,звонит initWithNibName
точно так же, и все они работают нормально.Но пара из них, в том числе этот пример один, нет.И да, я проверил все простые вещи - имя пера правильное и т.д ...