самое элегантное решение, которое я могу придумать, - позволить пользователю выбирать.
если ваши изменения разделены настолько хорошо, что вы можете использовать флаг (как вы говорите в своем вопросе), чтобы решить, какой код вы запускаете, я бы добавил параметр useNewUI
, который по умолчанию ДА, если вы не обнаружили, что приложение было уже установлен (подробнее об этом читайте далее). Затем пользователь может перейти к настройкам (вы также можете спросить их) и принять решение и в любой момент изменить.
Вы можете решить, является ли ваш пользователь новым или старым, проверив все данные, которые вы храните в NSUserDefaults
. В начале программы вы проверяете, есть ли данные, затем вы добавляете useNewUI
к NSUserDefault со значением NO, в противном случае вы добавляете его со значением YES.
Этот подход, основанный на NSUserDefault, может быть полезен для вас, даже если вы игнорируете возможность позволить пользователю выбирать настройки.