2016-07-08 3 views
0

У меня есть схема CRUD в TableViewController (A), работающая нормально (только с 1 секцией и несколькими строками). Поэтому я хочу, чтобы реализовать другой TableViewController (В), где количество секций будет количество строк первого контроллера A.Получить numberOfRowsInSection из другого UITableViewController XCode7 Swift2

Вот код контроллера B, где я пытаюсь получить доступ к numberOfRowsInSection от контроллера A (AgrupamientosTableViewController) ,

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    return AgrupamientosTableViewController.tableView(tableView: UITableView, numberOfRowsInSection section: Int) 
} 

Получаем ошибку: Expected ',' as a separator.

Любая идея? Благодаря!

+1

** Никогда ** вызовите методы делегирования, такие как 'tableView: numberOfRowsInSection:' самостоятельно. Получите информацию из массива источников данных другого контроллера представлений, что означает использование того же кода, что и тело метода. – vadian

+0

Здесь слишком много вещей, чтобы знать, с чего начать. Во-первых, вам нужно понять разницу между тем, что такое класс и чем является объект (который является экземпляром класса). Прочитайте о различии между ними. Затем вам нужно понять время жизни объектов контроллера вида. Когда существует B, A перестанет существовать, поэтому вы не можете его назвать. Если B запускается из A, тогда число секций может быть передано от A до B в pregareForSegue. Если B не запускается из A, вам нужен контроллер мета-представления, где количество секций в A сохраняется независимо от A. – Gruntcakes

+0

Большое спасибо за ваши комментарии !!! – user1675690

ответ

0

Я сделал изменения, и это похоже на работу:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    // #warning Incomplete implementation, return the number of sections 
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

    let managedContext = appDelegate.managedObjectContext 

    let fetchRequest = NSFetchRequest(entityName: "Agrupamientos") 

     let results = try! managedContext.executeFetchRequest(fetchRequest) 
     let Agrupamientos = results as! [NSManagedObject] 
     //print(Agrupamientos.count) 
     return Agrupamientos.count 
} 

Может быть это правильный способ сделать это?

Спасибо !!!