Статичний вигляд таблиці поза UITableViewController


159

Після нового оновлення Xcode мій додаток не перевіряє і показує цю помилку:

статичні подання таблиці дійсні лише тоді, коли вони вбудовані в екземпляри UITableViewController

Будь-які шанси вирішити легко?


Залежить від того, чому ви використовуєте підклас UIViewController замість UITableViewController.
Девід Беррі

3
Тому що мені потрібні інші елементи всередині подання, яке не належить до UITableViewController
Francesco S

1
Тут спостерігається те саме питання. Щойно оновлено (або, як здається, поки що) до Xcode 5.1, і у мене є та сама проблема. У мене є група статичних комірок у підкласі UITableViewController всередині мого UISplitViewController.
Стефан Арамбашич

Початок трапляється і для мене після оновлення. У мене є деякі контролери перегляду, побудовані зі статичних комірок, це не ідеально, але він працював нормально раніше.
jdmunro

Вам не потрібно використовувати UITableViewController. Ви отримуєте цю помилку, якщо у своєму UiTableView є комірки статичного перегляду таблиці, тому я думаю, що одне просте рішення - якщо вам потрібні клітини, не залишайте її статичною. Просто додайте делегат tableview та джерела даних та фіктивну методи
UITableViewDelegate

Відповіді:


341

Єдиний спосіб отримати статичний UITableView разом з іншими елементами управління на тому ж екрані - це використання Container View. Дотримуйтесь цього шляху, він прекрасно працює:

  1. Перетягніть ViewController на свою раскадровку.
  2. Перетягніть TableViewController на свою таблицю розкад.
  3. Далі Перетягніть подання контейнера на ваш ViewController та розміріть його відповідно до потрібного розміру (меншого за перегляд) ->, коли ви перетянете вигляд контейнера, це створить вигляд та інший вигляд. Видаліть цей вираз і перегляньте.
  4. Потім, нарешті, натисніть клавішу ctrl у контейнері та перетягніть його до нового TableViewContoller. Виберіть Вставити.
  5. Складіть свій TableView так, як вам потрібно -> включаючи статичні комірки.

Удачі.

Цю відповідь уже знайдено та надано тут: G.Huebner -> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cell-only-work-in-a-uitableviewcontroller.html


Де здійснити розетку чи дію? У UIViewControllerабо треба брати UITableViewController.
Бхавін Рамані

@Bhavin Ramani: Оскільки це є UITableViewController в контейнері, я пропоную взяти саме цей клас / підклас для зберігання своїх IBOutlets.
LukeSideWalker

2
Я думаю, вся ідея "статичних комірок" реалізована таким чином, що залежить від певної внутрішньої функціональності UITableViewController.
Nicolas Miari

2
Дякую за це. Можна підтвердити, що він працює в Xcode 8.3.1.
Атхарва Вайдя

Просто кльово! Я деякий час шукав це рішення.
Джейсон Фолья

8

Статичний UITableView повинен бути в UITableViewController. Таким чином, ви помістите таблицю в UITableViewController, а потім додайте її як childView до MainViewController.

Ви можете посилатися на https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html


1
Раніше це було багато способів (наприклад, збереження комірки), але тепер це помилка незалежно. Я думаю, що питання підказує, чи є спосіб придушити помилку.
Метью Кніппен

Так, це було. На жаль, я вирішив проблему за допомогою нестатичної таблиціView
Francesco S

1
Yikes. Обсяг повторної роботи, який потрібно було б перетворити на нестатичний через усі IBOutletфайли контролера s в моєму представленні, є занадто великим, і IMO неприпустимо, щоб оновлення порушувало це без попередження або зауваження про це в журналі змін ( Ерго, я припускаю, що на папері все-таки є дійсним стати UITableViewControllerзі статичними осередками UISplitViewContoller. Я зв’язався зі службою підтримки розробників Apple і отримав лише не дуже корисну відповідь електронною поштою, що посилає мене на форуми. Я думаю, я спробую там і побачити якщо хтось ще має ті самі проблеми після оновлення.
Стефан Арамбасіч

4

Я думаю, що ви робите це те, що ви спочатку перетягуєте ViewController на табло, а потім перетягуєте tableView на ViewController. Таким чином, ви не можете використовувати комірки статичної таблиці. Замість цього ви повинні перетягнути TableViewController на головну дошку замість ViewController і виберіть статичні комірки. Таким чином, ви зможете працювати над статичними осередками та використовувати будь-які елементи на статичних комірках.


0

Що ж, якщо ви дійсно використовуєте статичний tableView, вам слід розглянути можливість копіювання / передавання всього в ScrollView або StackView.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.