Quando removemos o link do tableView do ViewController para simular o erro na função 'add', é mostrado no exercicio que mesmo com a mensagem de erro, o item é adicionado no arraylist pois a execução não é bloqueado, o que podemos ver ao clicar em 'back', vendo o item adicionado na lista.
Porém ao realizar o mesmo procedimento no meu código o resultado foi diferente, onde o item não foi adicionado a tabela. Alguem teve o mesmo comportamento?
func add(item: Item) {
items.append(item)
if let table = tableView {
table.reloadData()
} else {
let alert = UIAlertController(title: "Sorry",
message: "Unexpected error, but the item was added.",
preferredStyle: UIAlertControllerStyle.Alert)
let ok = UIAlertAction(title: "Understood",
style: UIAlertActionStyle.Cancel,
handler: nil)
alert.addAction(ok)
presentViewController(alert, animated: true, completion: nil)
}
}
A única explicação que encontrei é que no método em AddItemViewController que chama o 'add', existe um popViewController que é executado em seguida do 'showViewController', e ele popViewController está zerando os dados do 'ViewController' que guarda o arry de itens.
Alguma idéia?