У меня есть таблица с двумя разделами. Сегментированный элемент управления в первых разделах изменяет, какие строки отображаются во втором разделе. Моя проблема заключается в том, что порядок строк и строка, отображаемая во втором разделе, неправильно изменяется при каждом последующем нажатии кнопки в сегментированном элементе управления.
Я разрешаю пользователю добавлять товар в список покупок тремя различными способами: по имени, по штрихкоду и по фотографии с помощью камеры. У меня есть 3 кнопки в UISegmentedControl
, поэтому пользователи могут выбирать, какой метод использовать. В зависимости от того, какой сегмент пользователь выбирает, поля во втором сегменте должны измениться, чтобы показать ячейки, относящиеся к этому методу.
Section 0:
0 row with segmented control showing name, barcode and camera buttons
Section 1:
// button zero, name button
0 row with textfield
1 row with textfield
or
// button 1, barcode button
0 row with textfield
or
// button 2, camera button
// shows camera view
Я поместил заполнители в каждом UITextField.
Каждый раз, когда нажимается кнопка в сегментированном элементе управления, я вызываю pickOne:
метод, который обновляет табличное представление. В этом методе я создаю NSIndexSet с NSRange (1, 1), а затем вызываю reloadSections:
метод UITableViewController с NSIndexSet в качестве параметра.
Когда вид появляется в первый раз, все в порядке, но когда я несколько раз нажимаю на кнопки, порядок ячеек меняется. Ячейки, содержащие два textFields для button0 и новые placeHolders, записываются поверх старых.
Хуже того, иногда, когда я нажимаю кнопку 0, отображается только вторая ячейка из двух ячеек.
Мой подробный код можно посмотреть здесь http://pastebin.com/9GwMpCS9