Я очень новичок в программировании и имею большую проблему, я потратил много часов на ее решение. Но я не понимаю, почему это происходит неправильно.фатальная ошибка после reloadData UITableView в другом классе
У меня есть ViewController
с TableView
и через другой ViewController
Wheres вида Можно добавить данные в TableView
. Из этого класса я вызываю func из первого класса ViewController
, в этом func находится reloadData
. И здесь начинается проблема. Приложение останавливается, и это только тогда, когда я вызываю func во втором классе. Когда я называю это в первом классе, проблема не возникает.
Вот первый класс:
Вот это FUNC:
func ladeDaten(){
let request = NSFetchRequest(entityName: "Territory")
do {
territorys = try context.executeFetchRequest(request) as! [Territory]
} catch let gebieteError as NSError {
print("error: \(gebieteError.localizedDescription)")
}
gebieteTableView.reloadData()
}
Вот второй класс:
class NewGebietViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate{
Вот это FUNC:
func textFieldShouldReturn(textField: UITextField) -> Bool {
let neuesGebiet = NSEntityDescription.insertNewObjectForEntityForName("Territory", inManagedObjectContext: self.targetVC.context) as! Territory
neuesGebiet.territoryName = self.newGebietNameTextField.text
do {
try self.targetVC.context.save()
}catch let gebieteError as NSError {
print("error: \(gebieteError.localizedDescription)")
}
self.targetVC.ladeDaten()
dismissViewControllerAnimated(true, completion: nil)
return true
}
Изображение, которое показывает ошибку
http://i.stack.imgur.com/qUo3e.png
Спасибо за помощь.
Больше кода с первого класса:
class GebieteViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var context = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
@IBOutlet weak var gebieteTableView: UITableView!
@IBOutlet weak var menuButton: UIBarButtonItem!
@IBOutlet weak var newGebietButton: DesignableButton!
var territorys: [Territory]!
Больше кода из второго класса:
class NewGebietViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate{
@IBOutlet weak var newGebietNameTextField: UITextField!
let targetVC = GebieteViewController()
Параметр 'gebieteTableView' является нулевым. Вы используете раскадровку? Отправьте свой код о инициализации 'GebieteViewController'. – Bannings
@Bannings вы имеете в виду инициализацию в 'NewGebietViewController'? – DanK7
Да, я думаю, что, возможно, ваша инициализация неверна. Опять же, вы используете раскадровку? – Bannings