На iPad, в UISplitViewController, у меня есть UITableViewController в правом разделе, показывающий детали того, что выбрано слева.Поэтому, когда я отменяю выделение всего слева и, следовательно, устанавливаю для объекта детализации значение nil в подробном представлении, я хотел бы очистить таблицу и отобразить сообщение с предложением пользователю выбрать элемент.
Вот почемуВ моем детальном подклассе UITableViewController содержится следующее:
var reference: Reference? {
didSet {
self.refreshInterface()
}
}
func refreshInterface() {
if let titleLabel = self.titleLabel {
if let ref = reference {
titleLabel.text = ref.projectName
} else {
titleLabel.text = NSLocalizedString("Please select a reference", comment: "")
}
}
tableView.reloadData()
}
override func numberOfSections(in tableView: UITableView) -> Int {
if(self.reference != nil) {
return 5
} else {
return 0
}
}
И я проверил с помощью отладчика, что после того, как я установил ссылку на nil, вызывается numberOfSections и возвращается 0. Но затем по какой-то причине все пользовательский интерфейстаблицы не очищены.У меня все еще есть те же строки и разделы, что и при выбранной ссылке.Я что-то пропустил?Это потенциальная ошибка в Cocoa Touch?