Как избежать использования [UITableViewController loadView] при попытке представить UIViewController (а не UITableViewController) - PullRequest
0 голосов
/ 13 ноября 2018

Я делаю приложение для iPad, которое, помимо прочего, содержит представление для установки параметров.Это представление «Опции» имеет два контейнерных представления, каждое из которых содержит TableView с двумя различными типами опций в них, и переключается для включения или выключения этих опций.Проблема в том, что когда я пытаюсь сделать кнопку из моего основного ViewController, которая откроет представление параметров, я получаю следующую ошибку:

Снимок экрана с ошибкой SIGABRT сигнала

с этим в выходных данных:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] instantiated view controller with identifier "UIViewController-c2d-Su-6Id" from storyboard "Options", but didn't get a UITableView.'

Я не знаю, почему используется базовая функция [UITableViewController loadView], так как я не ожидаю, что мой Options-view будет TableView - таблицы находятся вКонтейнерные представления.

Я использую разные раскадровки и перехожу к ссылке на раскадровку для модального представления Представления.Я попытался удалить как кнопку, так и ссылку на Storyboard, заменить их новыми и переименовать мой файл ViewController.swift и все ссылки на него, но безуспешно

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

Я довольно новичок в изучении swift и Xcode, поэтомуПожалуйста, придерживайтесь простых объяснений и предположите, что я совершенно некомпетентен: -)

1 Ответ

0 голосов
/ 13 ноября 2018

Полагаю, вы, вероятно, добавили контейнерное представление, которое автоматически помещает «дочерний» контроллер представления в раскадровку, а затем просто изменило класс этого дочернего VC на UITableViewController ---, который, как вы узнали, не работает.

Чтобы использовать контроллер табличного представления в качестве дочернего, добавьте представление «Контейнер», затем добавьте нормальный UITableViewController в раскадровку. Затем, Ctrl-Drag из Контейнерного Представления к новому контроллеру табличного представления и выберите Embed из всплывающего меню.

...