Pregunta

Alguien ha tenido un poco de suerte usando un UIPicker en el SDK 3.2? Estoy en medio de portar una aplicación iPhone a través de un iPad y eso es lo único que parece que no puede llegar al trabajo. He intentado ...

-Creación de una hoja de acción, poner el selector como subvista y mostrarla.

-Creación de esa hoja acción anterior, lo que es la vista de un ViewController genérico, añadiendo que VC a un UIPopover

-Realización sólo el selector de la vista de un ViewController genérico, añadiendo que VC a un UIPopover

Con la hoja de acción que ni siquiera intenta dibujarlo. En la vista popover intenta dibujar pero no consigue procesa de forma correcta.

Sólo quería comprobar para ver si alguien ha logrado esto y si es así cómo.

Gracias a todos!

¿Fue útil?

Solución

Yo soy el autor del tutorial se mencionó anteriormente. Para un recogedor de trabajo en un popover y añadir el valor seleccionado en el cuadro de texto en la vista principal que hay que utilizar protocolos. He creado un proyecto de ejemplo para demostrar esto. Voy a crear un tutorial sobre esto pronto.

proyecto de ejemplo

Otros consejos

Yo sólo luchado con esto durante aproximadamente 24 horas, y tengo que trabajar siguiendo este tutorial y donde quiera que menciona su UITableView, solo pienso en tu UIPickerView y sustituir la información adecuada.

Matthew Casey - Tutorial: Introducción al control de Pop Más en iPad

En resumen, en el IPAD, la única manera que puede mostrar un selector está dentro de un control popover. Compartiendo datos entre el controlador de la popover Ver el contenido (de la vista selector de controlador de vista) y controlador de vista de la aplicación principal es el bit que no podía averiguar. (Es decir, conseguir método "didSelectRow" del selector de afectar a un objeto en el controlador principal punto de vista, por ejemplo un UITextField o UIButton.) Esto se maneja mediante la creación de un protocolo personalizado para reenviar el método "didSelectRow" al controlador principal vista.

Estoy de ninguna manera un experto en esta materia, por lo que fui paso a paso con ese tutorial y lo hizo el trabajo al final. Antes de encontrar ese tutorial que estaba perdido. (También estoy portar más de una aplicación de iPhone para el iPad.)

Cuando desee compartir datos entre los controladores de vista ... la solución es la NSNotificationCenter.

Sé que esto no responde a la pregunta en su totalidad, pero si quiero compartir datos entre los controladores de vista: En el controlador de vista enviando

NSMutableDictionary *toshare = [[NSMutabledictionary alloc] init];
[toshare setValue:valueToShare forKey:@"shared"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"imSharing" withObject:nil userInfo:(NSDictionary *)toshare];

En el controlador de vista de recepción: Lugar en el viewDidLoad

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imSharing:) name:@"imSharing" object:nil];

a continuación, añadir esta función:

-(void)imSharing:(NSNotification *)notification {
      NSDictionary *dictionary = [notification userInfo]; 
        //do something with [dictionary objectForKey:@"shared"];
        dictionary = nil;
}

Esto funciona para el intercambio de datos entre 2 controladores de vista ... bueno, pequeñas cantidades de datos de todos modos.

De lo contrario mira aquí para obtener más información acerca de el intercambio de datos entre la vista controladores

¿Está utilizando Interface Builder? Es mucho más fácil crear una nueva subclase UIViewController en Xcode con el archivo semilla, y luego arrastre en la UIPicker. Luego hay que presentar el controlador de vista en un popover. Hojas de acción no están diseñados para tener subvistas, así que no hace eso.

lo he hecho: ver la tercera pantalla en C64 Pintura

.

Gracias por las respuestas a todos. Así que aunque no puedo decir cuál era el problema inicial, empecé el problema desde cero y tengo que trabajar. Hice visión completamente nueva de controladores y los muestra en una Popover y funcionó bien. Parece ser uno de los puntos más difíciles de hacer una aplicación universal.

El UIPickerView funcionará si lo crea en el iPad si lo crea de este modo:

UIPickerView* pickerView = [[UIPickerView alloc]initWithFrame: CGRectMake (someX, someY, 320, 216)];

Algunos otros tamaños no parecen funcionar. Pero CGRectZero no funciona en el iPad -. A pesar de que funciona en el iPhone

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top