Sup guys? Нужна помощь здесь. Я использовал протокол делегата, чтобы передать некоторые строки обратно с «второго контроллера представлений» на предыдущий.Tableview не reloadData()
Мой массив добавляет строку из метода, который я реализовал по протоколу делегата, но каждый раз, когда я нажимаю «добавить» и возвращаюсь к первому экрану, представление таблицы не изменяется. Я не уверен, что строка не передается между представлениями, или это просто просмотр таблицы, который не перезагружается.
Код довольно прост:
import UIKit
class EsseVaiReceber: UIViewController, UITableViewDataSource, UITableViewDelegate, PassInfoDelegate {
@IBOutlet var listaDeCoisasAFazer: UITableView!
var arrayInfo : [String] = []
var stringReceived: String = ""
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
listaDeCoisasAFazer.reloadData()
print("SCREEN APPEARED")
}
override func viewDidLoad() {
super.viewDidLoad()
listaDeCoisasAFazer.reloadData()
print("LOADED SCREEN")
}
func passInfo(infothatwillpass: String) {
arrayInfo.append(infothatwillpass)
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrayInfo.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell!
let row = indexPath.row
let titulo = arrayInfo[row]
cell.textLabel!.text = titulo
return cell
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "add") {
let view = segue.destinationViewController as! EsseVaiPassar
view.delegate = self
}
}
}
и:
import Foundation
import UIKit
protocol PassInfoDelegate {
func passInfo(infothatwillpass: String)
}
class EsseVaiPassar: UIViewController {
@IBOutlet var campoTitulo: UITextField!
var delegate: PassInfoDelegate?
var textinput: String = ""
@IBAction func botaoAdicionarCoisasAFazer(sender: AnyObject) {
if campoTitulo == nil { return }
textinput = campoTitulo!.text!
print("TEXTO NO CAMPO:\(textinput)")
if delegate == nil {
print("DELEGATE IS NILL")
return
}
delegate!.passInfo(textinput)
print("TEXTO DO DELEGATE: \(textinput)")
if let navigation = self.navigationController {
navigation.popViewControllerAnimated(true)
print("INFO QUE VAI PASSAR: \(textinput)")
}
}
}
Любые идеи, почему вид таблицы не будет заполнять? Спасибо advanced =)
Я вижу, что у вас много журналов в приложении. Можете ли вы предоставить результат своего исключения? – piyuj
Когда я запускаю приложение, вывод: «НАГРУЖЕННЫЙ ЭКРАН» и «ЭКРАНА ПОЯВЛЯЕТСЯ». Когда я нажимаю кнопку «Добавить», выход: «TEXTO DO CAMPO: BLABLABLA», «TEXTO DO DELEGATE: BLABLABLA», «INFO QUE VAI PASSAR: BLABLABLA» и «SCREEN APPEARED». –
Я очень смущен смешением делегатов с таблицами. –