Просмотр статической таблицы вне UITableViewController

После нового обновления XCode мое приложение не проверяется и показывает эту ошибку:

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

Есть шансы решить легко?

Ответ 1

Единственный способ получить статический UITableView вместе с другими элементами управления на том же экране - это использовать представление контейнера. Следуйте по этому пути, он отлично работает:

  1. Перетащите ViewController на вашу раскадровку.
  2. Перетащите TableViewController на вашу раскадровку.
  3. Затем перетащите представление "Контейнер" в ViewController и задайте для него размер, который вам нужен (меньше, чем представление) → при перетаскивании представления контейнера это создаст переход и другое представление. Удалите этот переход и просмотрите.
  4. Затем, наконец, нажмите Ctrl в вашем контейнере и перетащите в ваш новый TableViewContoller. Выберите Вставить.
  5. Стиль вашего TableView, как вы хотите → включая статические ячейки.

Удачи.

Этот ответ уже найден и дан здесь: Г.Хюбнер → http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table-view-cells-only-work-in-a-uitableviewcontroller.html

Ответ 3

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

Ответ 4

Я сделал другой путь, но не рекомендовал сам. Я должен показать 3 ячейки таблицы в виде таблицы, встроенной в UIViewController, содержащей значок и имя VISA, AMEX и MasterCard. Я сделал всего 3 динамических прототипа ячейки, дал им идентификатор и записал следующий код

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.row == 0 {
            let cell = tableView.dequeueReusableCell(withIdentifier: "visaCell", for: indexPath)
            return cell
        } else if indexPath.row == 1 {
            let cell = tableView.dequeueReusableCell(withIdentifier: "masterCardCell", for: indexPath) 
            return cell
        } else {
            let cell = tableView.dequeueReusableCell(withIdentifier: "amexCell", for: indexPath) 
            return cell
        }
    }