2013-09-16 5 views
1

При написании приложения для iPhone/iPad мне нравится ограничивать поля в адресной книге, которые можно редактировать.Можно ли ограничить поля в адресной книге, которые можно редактировать?

В качестве примера каждый контакт имеет имя, номер телефона, адрес электронной почты (ы) и адрес. Я хотел бы разрешить редактирование только телефонных номеров и полей электронной почты и просто отображать имя и адрес без возможности их изменения, поскольку поля имени и адреса были созданы в другом месте приложения.

Возможно ли быть выбранным при вызове функции адресной книги, которая позволяет редактировать запись контакта? Кажется, это не так, потому что выбор для редактирования кажется просто ДА или НЕТ.

ответ

0

У вас есть несколько вариантов:

  • Реализовать свой собственный редактор вместо использования ABPersonViewController. Это лучший способ, так как вы можете отображать все, что хотите, и ограничивать редактирование тем, какие вы хотите. Но для этого потребуется максимум усилий.

  • Создайте отдельный экземпляр ABRecordRef с только свойствами, которые можно редактировать, и скопируйте отредактированные значения обратно в исходный ABRecordRef после редактирования. Это плохой вариант, потому что будут доступны только те свойства, которые редактируются.

  • Создайте точную копию ABPersonRef и назначьте это ABPersonViewController. Когда редактирование сделано, скопируйте нужные свойства только в исходное ABPersonRef. Это лучше, чем второй вариант, потому что отображаются все свойства, но это путает пользователя, если им разрешено выполнять редактирование, которое не сохраняется.

+0

Я бы предпочел также первый вариант, но я не знаю, как создать точную копию ABPersonViewController.xib. Вариант второй может работать, если я могу просто поместить имя и адрес в .xib как метки. Жаль, что мы не можем добраться до .xib, но, возможно, у вас или у других может быть такое обходное решение. –

+0

Я бы сказал, что если вы не предоставляете такую ​​же точную функциональность, вы не должны копировать внешний вид ABPersonViewController. Это смущает пользователей, у которых есть ожидание того, как этот пользовательский интерфейс работает от его использования в других приложениях. И это может привести к тому, что Apple отклонит ваше приложение, если вы хотите опубликовать его в App Store. Я думаю, вы должны внедрить новый уникальный пользовательский интерфейс для того, что вы хотите выполнить. – bneely

+0

Хорошие очки. Не хотелось бы отклонения после всей тяжелой работы. Подумать об этом больше. –

Смежные вопросы