Почему UISwitch виден только если я переименую класс? - PullRequest
0 голосов
/ 29 августа 2010

У меня был класс с именем OptionsTableViewController , который унаследовал UITableViewController .Я изменил суперкласс на UIViewController , реализующий протоколы UITableViewDelegate и UITableViewDataSource , потому что мне нужно, чтобы tableView находился в определенной позиции.

Сейчаснекоторые ячейки таблицы имеют UISwitch в качестве accessoryView.Переключатель является переменной экземпляра, инициализированной с помощью CGRectZero .

При изменении суперкласса на UIViewController переключатели не отображаются.Но когда я также переименую класс (в OptionsViewController fe), он будет работать.

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

У меня была похожая проблема раньше, когда весь табличный вид не был быотображается, если класс не был переименован.

Ответы [ 2 ]

0 голосов
/ 03 октября 2010

Я нашел причину этой проблемы.Хотя при поиске в проекте XCode не было найдено ни одного файла с именем OptionsTableViewController, но я обнаружил, что он включен в Targets -> AppName.Файл не исчезнет после очистки всех целей, поэтому полезно знать, что там все еще остаются части.

0 голосов
/ 29 августа 2010

Проверяли ли вы, используются ли имена OptionsTableViewController и OptionsViewController где-либо еще во всем вашем проекте, в том числе в файлах пера Interface Builder?Изменили ли вы все имена соответствующим образом?

...