iPhone: Создание основанного на иерархии перемещения по таблицам

Я попытался спросить это прежде, но ничему не ответили. В основном я хотел бы, чтобы кто-то объяснил мне, как составить таблицу, которая, когда ячейка касается, продвигает пользователя к следующему представлению для той ячейки. У меня есть это до сих пор:

Щелкните здесь для просмотра то, что я имею.

Я далее хотел бы, сказал бы, когда 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

1
задан Jack G 24 April 2010 в 16:07
поделиться

3 ответа

Сначала ошибка «Завершение работы приложения из-за неперехваченного исключения». Я заметил, что ваш RootViewController содержит:

    IBOutlet UITableView *tblSimpleTable;

Убедитесь, что вы правильно подключили свойство "view" RootViewController к вашему UITableView, а не просто подключили tblSimpleTable к вашему TableView. Свойство представления в UITableViewController должно указывать на UITableView.

Предполагая, что tblSimpleTable - это TableView, которым вы хотите управлять из этого UIViewController, удалите этот выход и просто используйте свойство «view» или «tableView» UITableViewController, они оба будут действительными.

Для решения вашей исходной проблемы иерархических табличных представлений взгляните на этот пример проекта:

TheElements

1
ответ дан 3 September 2019 в 01:02
поделиться

Если собственная документация SDK не дает ответов, которые вам нужны, попробуйте поискать в Google учебник по UITableView Interface Builder . Это должно вернуть ряд полезных пошаговых руководств.

Причина, по которой вы получаете исключение, заключается в том, что вы не подключили выход tblSimpleTable к объекту табличного представления в Interface Builder.

IB Outlets

Откройте NextView.xib в Интерфейсном Разработчике. Выберите объект Владелец файла . Откройте панель инспектора, и вы должны увидеть что-то похожее на изображение, которое я опубликовал. Вместо searchTable ваш должен читать tblSimpleTable. Чтобы связать розетку с владельцем файла, нажмите и удерживайте кружок справа от «tblSimpleTable» и перетащите линию к своему объекту «tblSimpleTable».

alt text

Сохраните изменения, перестройте свой проект.

1
ответ дан 3 September 2019 в 01:02
поделиться