iPhone - как поместить пакет настроек, видимый через приложение "Настройки системы", в свое собственное приложение?

Я хочу создать страницу настроек из моего приложения, которая будет выглядеть точно так же, как та, которую я бы создал в приложении системных настроек, используя Settings.bundle и Root.plist.

Есть ли простой способ получить доступ к элементам управления, таким как PSMultiValueSpecifier и т. Д., И добавить их в реальный вид?

Спасибо!

6 ответов

Решение

Еще один вариант:

Вот еще одно решение:

  • http://www.inappsettingskit.com/

    InAppSettingsKit - это решение с открытым исходным кодом, позволяющее легко добавлять настройки приложения в приложения iPhone. Он использует гибридный подход, поддерживая панель Settings.app. Таким образом, у пользователя есть выбор, где изменить настройки...

    Для поддержки традиционных панелей Settings.app приложение должно включать в себя файл Settings.bundle, по крайней мере, с Root.plist, чтобы указать соединение элементов пользовательского интерфейса настроек с ключами NSUserDefaults. InAppSettingsKit в основном просто использует тот же Settings.bundle для своей работы. Это означает, что нет никакой дополнительной работы, когда вы хотите включить новый параметр настроек. Его просто нужно добавить в файл Settings.bundle, и он появится как в приложении, так и в файле Settings.app. Поддерживаются все типы настроек, такие как текстовые поля, ползунки, элементы переключения, дочерние представления и т. Д....

Крейг Хокенберри ( Craig Hockenberry) имеет проект GenericTableViews, который поможет вам легко составить табличное представление для параметров или форм.

Тема о том, следует ли настройка идти в вашем приложении или в приложении предпочтений является спорной, в основном потому, что нет никакого способа, чтобы открыть настройки из приложения (как отмечено в ответ coob ссылке на), и потому, что нет никакого способа добавить взаимодействие с настройками - и есть много причин, по которым вы можете захотеть, в том числе валидность / согласованность / проверка сети и т. д.

Поэтому, если вы захотите представить пользовательский интерфейс, похожий на пользовательский интерфейс настроек, в вашем приложении, я не знаю никакого простого или готового кода для этого, но код Мэтта Галлахера - отличное начало для создания собственного.

И еще (отдельный пост из-за "защиты новичка от спама", извините).

Они используют "стандартный" подход Settings.bundle, но их довольно легко представить в приложении. И вы также получаете поведение системы "Настройки" бесплатно.

В iOS 8 и более поздних версиях, если у вас уже есть пакет настроек, его очень легко запустить из приложения в приложение "Настройки" для управления им (пример Swift 3)

if let settingsURL = URL(string: UIApplicationOpenSettingsURLString) {
            UIApplication.shared.open(settingsURL)
        }
Другие вопросы по тегам