Pregunta

uno de mis controladores de vista tiene varios UISwitches, y quiero otra vista del controlador para poder acceder a los valores de los UISwitches de IF / y declaraciones. ¿Cómo puedo hacer esto en Objective-C?

¿Fue útil?

Solución

Es probable que no quiere hacer eso. Si desea una segunda ViewController a tener un comportamiento diferente en función de los interruptores lanzados en la primera, sólo debe obligar a los interruptores para la configuración de usuario, que se puede leer en cualquier lugar de su aplicación.

http: // icodeblog. com / 2008/10/03 / iPhone de programación-tutorial-savingretrieving-data-usando-NSUserDefaults /

Otros consejos

Esta es una mala idea, ya que crearía una dependencia innecesaria entre los controladores de vista.

Si aún desea hacerlo, sólo tiene que pasar una referencia del primer controlador de vista con los interruptores en el segundo controlador de vista. Luego, en el segundo controlador de vista simplemente tener acceso a la propiedad correspondiente on de UISwitch.

Sin embargo, en lugar de ir por ese camino, sugiero encarecidamente crear una clase personalizada para mantener el estado booleano de cada UISwitch. Una instancia de esta clase o bien podría ser un singleton, o contenida en el delegado aplicación. Ver este responder a cómo hacerlo con ambos enfoques.

Una clase personalizada es mejor debido a que un UISwitch es sólo una manera de representar alguna propiedad en el modelo de datos. Y si mañana se ha sustituido el UISwitch con otra fantasía control, el segundo controlador de vista todavía debe seguir trabajando. Ambos controladores de vista tienen una referencia a un objeto de esta clase personalizada. Cada vez que hay un cambio, el primer controlador actualiza este objeto.

La interfaz de clase podría ser algo como esto:

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

@property BOOL first;
@property BOOL second;
@property BOOL third;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top