iPhone: создание иерархической таблицы навигации - PullRequest
1 голос
/ 24 апреля 2010

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

Нажмите здесь, чтобы посмотреть, что у меня есть.

Кроме того, я бы хотел сказать, что при нажатии 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 <UITableViewDelegate, UITableViewDataSource> {
    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

Ответы [ 3 ]

1 голос
/ 24 апреля 2010

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

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

IB Outlets http://i41.tinypic.com/ohr1jb.png

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

альтернативный текст http://i44.tinypic.com/2pr8pi0.jpg

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

1 голос
/ 24 апреля 2010

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

    IBOutlet UITableView *tblSimpleTable;

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

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

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

TheElements

0 голосов
/ 24 апреля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...