Ответ 1
mahboudz правилен тем, что поведение теперь дифференцировано.
Если вы установили только элемент DetailButton, то в iOS7 вы увидите (i) в качестве кнопки вспомогательной аксессуара. Но в iOS6 вы ничего не увидите. Таким образом, отображение подробного представления с помощью accessoryButtonTappedForRowWithIndexPath
с использованием SDK7.0 не работает на устройстве iOS6, поскольку не отображается аксессуар.
Использование обратной конфигурации имеет похожие проблемы, но вместо этого вы будете использовать didSelectRowAtIndexPath
.
Обход, который я нашел, заключался в том, чтобы применить аналогичный подход к работе с extendedLayouts в iOS7.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
cell.accessoryType = UITableViewCellAccessoryDetailButton;
} else {
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
Итак, в iOS7 я использую только DetailButton, а в версиях до iOS7 я использую DetailDiscloureButton
.