Я пытаюсь создать приложение с несколькими видами с шаблоном навигации. Мне нужна таблица в нижней части исходного вида, с другими видами (просмотр изображений, ярлыки и т. Д.) Сверху.Multi-View TableView с RootController
Первоначально я модифицировал RootViewController.xib для изменения размера таблицы и добавил изображение, но ничего не отображалось, кроме таблицы полного размера.
Поэтому я изменил RootViewController.xib, чтобы добавить UIView, а затем добавил UITableView и UIImageView к этому представлению. Я добавил IBOutlet для tableView. В моем RootViewController.xib, владелец файла (RootViewController) имеет выходное соединение с представлением и табличным представлением. Когда я нажимаю правой кнопкой мыши UITableView, я вижу ссылку для ссылки на владельца файла. Когда я нажимаю правой кнопкой мыши UIView, я вижу ссылку для ссылки на владельца файла. (У меня нет выхода в UIImageView, так как я не изменяю код, мне нужен он?).
Однако, когда я запускаю приложение, оно падает с сообщением:
'NSInternalInconsistencyException',
reason: '-[UITableViewController loadView] loaded the "RootViewController" nib but didn't get a UITableView.'
Не знаю, почему, как решить. Любая помощь очень глубоко оценена.
Вот метод cellForRowAtIndexPath:
(UITableViewCell *) Tableview: (UITableView *) Tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath {
статическая NSString * QuizIdentifier = @ "QuizIdentifier" ;
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: QuizIdentifier];
, если (ячейка == ноль) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:QuizIdentifier] autorelease];
}
UIImage * _image = [UIImage imageNamed: @ "icon.png"];
cell.imageView.image = _image;
NSInteger row = [indexPath row];
cell.textLabel.text = [_categories objectAtIndex: row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
обратная ячейка; }
ОК, здесь идет:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *QuizIdentifier = @"QuizIdentifier";
UITableViewCell *cell =
[tableView dequeueReusableCellWithIdentifier:QuizIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:QuizIdentifier]
autorelease];
}
// Configure the cell.
UIImage *_image = [UIImage imageNamed:@"icon"];
cell.imageView.image = _image;
NSInteger row = [indexPath row];
cell.textLabel.text = [_categories objectAtIndex:row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
ОК, я изменил UITableViewController к UIViewController в RootViewController.h; теперь отображается изображение, как и пустая таблица. Это похоже на обычное приложение на основе View, а не на навигационное приложение. Есть ли причина использовать шаблон навигации в этом случае? – Namhcir
Итак, есть ли проблема, или она работает сейчас? – edc1591
ОК, работает до сих пор; однако у меня возникла проблема с отображением свойств ячейки. Я загружаю cell.textLabel.text из сообщения [array objectAtIndex: row] и отображается правильно; однако, когда я пытаюсь установить тип аксессуара или изображение, которое оно не отображает: cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; cell.imageView.image = [UIImage imageNamed: @ "myImage.png], поэтому я не могу не отображать эти свойства. Любые идеи очень ценятся. – Namhcir