У меня есть этот код в моем контроллере табличного представления (и делегате):
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailStatus *detailViewController = [[DetailStatus alloc] initWithNibName:@"DetailStatus" bundle:nil status:[mStatuses objectAtIndex:indexPath.row]];
[[self navigationController] pushViewController:detailViewController animated:YES];
[detailViewController release];
[self.tableView deselectRowAtIndexPath:indexPath animated:NO];
NSLog(@"exiting didselectrow");
}
И в моем классе DetailStatus:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil status:(NSDictionary *)pStatus {
NSLog(@"I am being called %d", [pStatus objectForKey:@"id"]);
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// some stuff
}
return self;
}
Самое смешное, что мой DetailStatus на самом делебудучи инициализированным, в окне консоли он даже выводит "I am being called 000001"
, но странным образом представление не переносится в представление таблицы ...
Я проверил имя пера, и все в порядке.Я проверил заголовочный файл DetailStatus, он выглядит нормально (вот так):
@interface DetailStatus : UIViewController {
Так кто-нибудь знает, почему представление не переносится в окно, даже если я его инициализировал и выдвинул?
ОБНОВЛЕНИЕ: я попытался записать некоторые сообщения отладки в viewDidLoad в DetailStatus, и кажется, что представление не загружено, хотя класс был создан ... Интересно, почему.
ОБНОВЛЕНИЕ2:такое ощущение, что это может быть моей организацией контроллера навигации, это неправильно .. У меня есть следующее:
Login page -> customtabbar -> First table view -> DetailStatus
-> Second table view -> DetailStatus
Я думаю, что я поддерживаю только один контроллер навигации в этой иерархии.Я никогда не создавал другие навигационные контроллеры.Я только толкаю взгляд за другим.
Спасибо всем за ответы!Я скоро выдаю награду, я позволю другим людям голосовать первыми до истечения срока награды.