У меня был класс с именем OptionsTableViewController, который наследовал UITableViewController. Я изменил суперкласс на UIViewController, реализующий протоколы UITableViewDelegate и UITableViewDataSource, поскольку мне нужно, чтобы tableView находился в определенной позиции.
Теперь некоторые ячейки таблицы имеют UISwitch в качестве аксессуара. Переключатель — это переменная экземпляра, инициализированная с помощью CGRectZero.
При изменении суперкласса на UIViewController переключатели не отображаются. Но когда я также переименовываю класс (в OptionsViewController например), он работает.
Кто-нибудь знает, откуда такое странное поведение? Я также пытался очистить проект и даже удалил папку сборки, но, похоже, единственное решение - переименовать класс.
Раньше у меня была похожая проблема, когда все табличное представление не отображалось, если только класс не был переименован.
accessoryView
установлен правильно? Можете ли вы успешно зарегистрировать все дополнительные представления, чтобы увидеть, действительно ли они установлены? Это действительно не может быть из-за названия класса, должно быть что-то не так где-то. - person Joost   schedule 29.08.2010cell.accessoryView = _switch;
где переключатель представляет собой переменную экземпляра, инициализированную следующим образом:_switch = [[UISwitch alloc] initWithFrame:CGRectZero];
Что вы подразумеваете под записью дополнительных представлений? Я установил точку останова, и приложение остановилось в этой точке. Так что команда точно выполняется. Я также пытался просто добавить переключатель в качестве подвида к представлению (не к табличному представлению), но это также не сработает. Я предполагаю, что имя класса используется где-то в проекте, но не в коде, который я написал. - person marikaner   schedule 29.08.2010