Tamaño incorrecto de UITableView.SizeThatFits ()

Implementé un UIPopoverController que se llena con una UITableView agrupada. El número de celdas en la vista de tabla puede cambiar de forma dinámica mientras el popover sea invisible. Tan pronto como el popover se vuelve visible, la cantidad de celdas está fija.

Cuando el popover se vuelve visible, cambio el tamaño del contenido del popover a la altura de la vista de la tabla. Utilizo el método SizeThatFits () de UITableView para get el tamaño de la tabla y uso este valor para configurar el popover PopoverContentSize height.

Esto funciona bien cuando la aplicación se está ejecutando. Pero siempre la primera vez que se muestra el popover después de un nuevo inicio de la aplicación, SizeThatFits () ofrece una altura incorrecta (aproximadamente 60 píxeles a alto). ¿Alguien tiene idea de qué podría ser este problema?

Tuve un problema un tanto similar porque estaba realizando mis cálculos en ViewDidLoad. Pude evitar el problema creando un indicador bool en el código de la vista y solo ejecutando los cálculos en ViewDidAppear si el indicador no estaba configurado (y, por supuesto, configurando el indicador para que la lógica no se repitiera cada vez).

En iOS 5 y superiores, sizeThatFits en una UITableView da el resultado correcto cuando se llama dentro del método viewDidLayoutSubviews UIViewController.