El espacio superior de la vista de tabla a la barra de navigation aumentó después de presionar hacia atrás

Cuando hago clic en una de las celdas en la vista de tabla, se abre una nueva vista con el siguiente código:

let fullResView : FullResponseViewController = self.storyboard?.instantiateViewControllerWithIdentifier("FullResponseView") as! FullResponseViewController fullResView.receivedPost = post self.navigationController?.pushViewController(fullResView, animated: false) 

Cuando presiono hacia atrás, aumenta la distancia entre la vista de la tabla y la Guía de layout superior. Representación:

Error de controlador de navegación de vista de tabla.

Jerarquía:

  • Tengo un controller de barra de tabs, que está embedded en un controller de navigation.
  • La vista de tabla se arrastra y suelta después de crear una vista normal. Entonces, la vista de la tabla está dentro de una vista.
  • La vista de tabla contiene una vista de encabezado. Cuando se establece un color de background para esto, se mueve junto con él, por lo que no debería tener nada con esas restricciones.

Las restricciones para la vista de tabla son:

  • igual a para supervisión
  • Alinear el centro X para supervisar
  • espacio superior a la Guía de layout superior
  • espacio inferior a la guía de layout inferior

He probado lo siguiente:

configure esto en viewWillAppear:

 self.responsesTableView.contentOffset = CGPointMake(0, 0) self.automaticallyAdjustsScrollViewInsets = false 

Esto funcionó cuando presioné hacia atrás, luego cambié a otra vista en la barra de tabs y luego volví a cambiar. Sin contentOffset seguirá así para siempre.

Como he visto las imágenes de OP que parecen propiedad de Translúcido de navigation Problema. Porque después de empujar un control de vista, hay el mismo espacio en blanco de 44px. por lo que significa que si su propiedad UITableview navigation es verdadera, entonces su UITableview comenzará desde la position 0 Y. Y si su propiedad UITableview navigation es falsa, UITableview comenzará desde la position 44px Y.

Así que supongo que entre empujar y retroceder, donde los translúcidos de UINavigation se convierten en verdaderos y falsos. haga que la siguiente línea agregue en su class appdelegate en el método DidFinish:

 UINavigationBar.appearance().translucent = false 

Esta es la appearance de UINavigationBar para hacer este mundo falso en tu proyecto. Espero que se solucione tu problema.

No estoy seguro si esto está relacionado con su problema particular, pero vale la pena verificar si su UITableView es el primer control en su pantalla:

¿Por qué hay relleno adicional en la parte superior de mi UITableView?

Incluso en la última versión de Xcode, este es un error. Pero es bastante fácil de arreglar, si sabes cómo solucionarlo.

introduzca la descripción de la imagen aquí