¿Por qué el método de delegado UIPickerView widthForComponent no se llama cada vez que aparece la vista?

Tengo dos controles en la pantalla de un iPhone: TableView y UIPickerView. Cuando selecciona la celda única en el TableView, se le lleva a otra pantalla donde se muestra una lista de tipos de ropa. Seleccionar un solo artículo de ropa de la lista lo lleva de vuelta a la primera pantalla. En función de su selección, la cantidad de componentes en UIPickerView se modifica (1-4) y cada componente se completa con datos relevantes.

Digamos que tiene tres artículos en su lista de tipos de ropa y cada artículo debe tener un cierto número de componentes en el UIPickerView cuando se selecciona:

Cinturón - 3 componentes con anchos de 100, 55, 100 Brassiere - 3 componentes con anchos de 55, 55, 55 Otros - 4 componentes con anchos de 100, 100, 55, 50

Escenario # 1 - Todo es como debe ser

1.1 - Selecciona la prenda de vestir "Cinturón" y UIPickerView se dibuja con 3 componentes con los datos de Cinturón apropiados en cada componente. Los anchos de los componentes son 100, 55, 100.

1.2 - Seleccionas el artículo de ropa "Otro" y el UIPickerView se dibuja con 4 componentes con los otros datos apropiados en cada componente. Los anchos de los componentes son 100, 100, 55, 50.

1.3 - Selecciona la prenda de vestir "Brassiere" y el UIPickerView se dibuja con 3 componentes con los datos de Brassiere apropiados en cada componente. Los anchos de los componentes son 55, 55, 55.

Escenario # 2 - Ancho de componente no redibujado

1.1 - Selecciona la prenda de vestir "Cinturón" y UIPickerView se dibuja con 3 componentes con los datos de Cinturón apropiados en cada componente. Los anchos de los componentes son 100, 55, 100.

1.2 - Seleccionas la prenda de vestir "Brassiere" y el UIPickerView se dibuja con 3 componentes con los datos de Brassiere apropiados en cada componente. Sin embargo, los anchos de los componentes siguen siendo 100, 55, 100, no 55, 55, 55.

1.3 - Seleccionas el artículo de ropa "Otro" y el UIPickerView se dibuja con 4 componentes con los otros datos apropiados en cada componente. Los anchos de los componentes son 100, 100, 55, 50.

1.2 - Seleccionas la prenda de vestir "Brassiere" y el UIPickerView se dibuja con 3 componentes con los datos de Brassiere apropiados en cada componente. Los anchos de los componentes ahora son correctos - 55, 55, 55.

Desde el paso a través del código, parece que solo se invoca al método delegado UIPickerView widthForComponent cuando cambia la cantidad de componentes en el UIPickerView.

¿Hay alguna manera de forzar este método de delegado para disparar cada vez?

Actualización - 10.26.09

Estoy llamando a [UIPickerView reloadAllComponents en el delegado de viewWillAppear usando el siguiente código:

-(void)viewWillAppear:(BOOL)animated {

 ...

 self.PopulatePickerArrays; // Populate components based on selection
 [sizePicker reloadAllComponents];

 ...

}

Gracias por adelantado.

Respuestas a la pregunta(3)

Su respuesta a la pregunta