iOS: UITableView en UIVIewController no muestra todas las filas

Estoy enfrentando un error con mi UITableView en UIViewController . Trataré de explicar cuál es la situación y mi problema.

Tengo un TabBarController que una vista es un UIViewController con una UITableView . No uso un UITableViewController porque tengo algunos controles específicos en mi UIViewController .

Entonces, cuando mi UIViewController no es un elemento secundario de mi TabBarController , todo está bien: todas las filas se muestran correctamente.

Pero, cuando configuro mi UIViewController como un elemento secundario de mi TabBarController , tengo este error: solo se muestran algunas filas (una sobre tres exactamente, en todos los escenarios).

Simplemente no entiendo lo que está sucediendo. Mi código parece funcionar, pero solo cuando mi UIViewController no es un elemento secundario de mi TabBarController .

¿Hay otro método para agregar en este caso?

Existe el código de mi UIViewController :

 class ProfileController: UIViewController, UITableViewDataSource, UITableViewDelegate { @IBOutlet weak var tableChallenges: UITableView! @IBOutlet weak var profileTabs: UISegmentedControl! var pageViewController : UIPageViewController! override func viewDidLoad() { super.viewDidLoad() self.tableChallenges.dataSource = self self.tableChallenges.delegate = self self.tableChallenges.reloadData() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 5 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("challengeCustomCell", forIndexPath: indexPath) as! ChallengeCustomCell switch(self.profileTabs.selectedSegmentIndex) { case 0: cell.challengeSuccededOrFailedImage.hidden = true break case 1: cell.challengeSuccededOrFailedImage.hidden = false cell.challengeSuccededOrFailedImage.image = UIImage(named: "challenge-succeded") break case 2: cell.challengeSuccededOrFailedImage.hidden = false cell.challengeSuccededOrFailedImage.image = UIImage(named: "challenge-failed") break case 3: cell.challengeSuccededOrFailedImage.hidden = true break default: break } return cell } @IBAction func selectedItemChanged(sender: AnyObject) { self.tableChallenges.reloadData() } } 

Gracias de antemano por sus respuestas ! 🙂

Desde que salieron las tablas de MainStory, no soy un gran fan, tuve el mismo error la otra noche, tuve que deshacerme de mi View Controller y sacar un View Controller de un file .xib.

  • Elimino el ViewController de mi porject
  • Luego fui a AppDelagate y agregué una variable para crear mi propio ViewController
    var viewController: ViewController?
  • Debajo de didFinishLaunchingWithOptions: function antes del retorno

  • Agregué el siguiente código
    self.window = UIWindow(frame:UIScreen.mainScreen().bounds) self.viewController = ViewController(nibName:"ViewController",bundle:nil) var navController = UINavigationController(rootViewController: self.viewController!) navController.navigationBarHidden = true self.window?.rootViewController = navController self.window?.makeKeyAndVisible()

Básicamente, después de dibujar los frameworks de las windows creamos el ViewController e lo incrustamos en un controller de navigation, luego configuramos el controller de navigation como la vista raíz de la window.

  • Entonces, debes crear un file xib Archivo> Nuevo> Archivo elegir IOS / Interfaz de usuario; nómbralo ViewController y crea. Después de que puede agregar el controller UITableView y todo debería funcionar bien.

Perdón por mucho time sin comentarios.

Finalmente encontré una solución a mi problema. UIViewController mi UIViewController que contiene el UITableView en un UINavigationController . Después de algunas investigaciones, parece ser la buena jerarquía para este caso.

Espero que esto ayude a alguien. 🙂