Вопрос

один из моих контроллеров представления имеет несколько пользовательских переключателей, и я хочу, чтобы другой контроллер представления мог получать доступ к значениям пользовательских переключателей для операторов If / and.Как мне сделать это в Objective-c?

Это было полезно?

Решение

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

http://icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretriving-data-using-nsuserdefaults/

Другие советы

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

Если вы все еще хотите это сделать, просто передайте ссылку на первый контроллер представления с переключателями второму контроллеру представления.Затем в вашем втором контроллере просмотра просто обратитесь к соответствующему uiswitch'у on собственность.

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

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

Интерфейс класса может быть чем-то вроде этого:

@interface DataValues : NSObject {
    BOOL first;
    BOOL second;
    BOOL third;
}

@property BOOL first;
@property BOOL second;
@property BOOL third;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top