Я попытался спросить это прежде, но ничему не ответили. В основном я хотел бы, чтобы кто-то объяснил мне, как составить таблицу, которая, когда ячейка касается, продвигает пользователя к следующему представлению для той ячейки. У меня есть это до сих пор:
Щелкните здесь для просмотра то, что я имею.
Я далее хотел бы, сказал бы, когда CSS касается, он переходит к новому представлению, которое имеет другую таблицу в нем. Эта таблица затем взяла бы пользователя к представлению детали, которое с возможностью прокрутки, и можно переключиться, пролистывает его.
Я ценил бы дольше, более структурированные учебные руководства о том, как внести свою лепту, чтобы заставить это работать.
Вот мой массив в моем файле реализации:
- (void)viewDidLoad {
arryClientSide = [[NSArray alloc] initWithObjects:@"CSS", @"HTML", @"JavaScript", @"XML", nil];
arryServerSide = [[NSArray alloc] initWithObjects:@"Apache", @"PHP", @"SQL", nil];
self.title = @"Select a Language";
[super viewDidLoad];
}
и мой.h:
@interface RootViewController : UITableViewController {
IBOutlet UITableView *tblSimpleTable;
NSArray *arryClientSide;
NSArray *arryServerSide;
}
Мой текущий код разрушает сценарий, и эта ошибка возвращается в консоли:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] loaded the "NextView" nib but didn't get a UITableView.'
Если та ошибка является источником того, почему это не продвигает, то объяснение того, как исправить, который также ценился бы
Реализация NextViewController
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
arryBasicCSS = [[NSArray alloc] initWithObjects:@"Implement", @"Syntax", @"Classes and IDs", @"Fonts", @"Backgrounds", @"Lists", @"Links", nil];
arryIntermediateCSS = [[NSArray alloc] initWithObjects:@"Padding and Margin", @"Alignment and Floating", @"Pseudo-class and Element", @"Opacity and Display", nil];
arryAdvancedCSS = [[NSArray alloc] initWithObjects:@"Sprites", @"Attribute Selectors", @"Animation", nil];
self.title = @"CSS";
[super viewDidLoad];
}
- (IBAction) changeItemTable:(NSString *)str{
tblCSS = str;
}
NextViewController.h
@interface NextViewController : UITableViewController {
IBOutlet UITableView *tblCSS;
NSArray *arryBasicCSS;
NSArray *arryIntermediateCSS;
NSArray *arryAdvancedCSS;
}
Большое спасибо, Jack
Сначала ошибка «Завершение работы приложения из-за неперехваченного исключения». Я заметил, что ваш RootViewController содержит:
IBOutlet UITableView *tblSimpleTable;
Убедитесь, что вы правильно подключили свойство "view" RootViewController к вашему UITableView, а не просто подключили tblSimpleTable к вашему TableView. Свойство представления в UITableViewController должно указывать на UITableView.
Предполагая, что tblSimpleTable - это TableView, которым вы хотите управлять из этого UIViewController, удалите этот выход и просто используйте свойство «view» или «tableView» UITableViewController, они оба будут действительными.
Для решения вашей исходной проблемы иерархических табличных представлений взгляните на этот пример проекта:
Если собственная документация SDK не дает ответов, которые вам нужны, попробуйте поискать в Google учебник по UITableView Interface Builder
. Это должно вернуть ряд полезных пошаговых руководств.
Причина, по которой вы получаете исключение, заключается в том, что вы не подключили выход tblSimpleTable
к объекту табличного представления в Interface Builder.
Откройте NextView.xib в Интерфейсном Разработчике. Выберите объект Владелец файла
. Откройте панель инспектора, и вы должны увидеть что-то похожее на изображение, которое я опубликовал. Вместо searchTable ваш должен читать tblSimpleTable. Чтобы связать розетку с владельцем файла, нажмите и удерживайте кружок справа от «tblSimpleTable» и перетащите линию к своему объекту «tblSimpleTable».
Сохраните изменения, перестройте свой проект.