Ответ 1
Вы хотите попробовать использовать TableViewController, а не контроллер Generic View?
Я создал новый проект Xcode, используя Storiesboards (шаблон представления табуляции). Я добавил пару контроллеров представлений в свою раскадровку и хотел использовать UITableView со статическими ячейками для одного. Я создал его, но когда я запускаю симулятор, ячейки не отображаются. Я ничего не изменил в проекте, кроме этого файла раскадровки. Я показываю скриншоты редактора раскадровки и работает симулятор. Появится метка, поэтому изображение загружается правильно. Я установил цвет фона в серый, чтобы я мог видеть, что talbeview загружается. Все ячейки установлены на видимые. Я изменил свой стиль на Basic и отредактировал ярлык, и добавил индикатор раскрытия информации, что все.
Вы хотите попробовать использовать TableViewController, а не контроллер Generic View?
Не применяйте ни один из приведенных ниже методов при использовании представления статической таблицы:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}
Как указано на веб-сайте Ray Wenderlich (в этом сообщении: Начало раскадровки в iOS 5 Part 2, раздел "Добавить экран игрока на работу", ):
Еще одна вещь о статических ячейках, они работают только UITableViewController. Редактор раскадровки позволит вам добавить их в объект Table View внутри обычного UIViewController, но это не будет работать во время выполнения. Причина этого в том, что UITableViewController предоставляет некоторую дополнительную магию, чтобы заботиться о источнике данных для статические ячейки. Xcode даже не позволяет вам скомпилировать такой проект с сообщением об ошибке: "Незаконная конфигурация: представления в статической таблице действителен только при вставке в экземпляры UITableViewController".
Имел ту же проблему, но это делает все ясно...
Вы можете добавить представление контейнера и вставить в этот контейнер UITableViewController. Затем вы можете управлять своими статическими ячейками внутри нового контроллера.
У меня возникла одна и та же проблема, и исправление, которое сработало для меня, состояло в представлении статического подкласса UITableViewController с использованием performSegue.
Представление старого способа с помощью [[self navigationController] present...]
не привело к тому, что статический вид таблицы правильно загружал его ячейки.