Друзья, день добрый. Совсем новый в Swift. Заранее прошу прощения, если вопрос через чур тупой.
Есть метод, который получает по API список контрагентов:
class SupplierViewController: UIViewController {
@IBOutlet weak var suppliersTableView: UITableView!
var suppliers: [Supplier] = []
func fetchSupplierList() {
SupplierService.fetch(url: "http://localhost:8000/finance/api/suppliers/") { result in
switch result {
case .success(let suppliers):
self.suppliers = suppliers
self.suppliersTableView.reloadData()
case .failure(let error):
print("Failed to fetch suppliers", error)
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
suppliersTableView.delegate = self
suppliersTableView.dataSource = self
fetchSupplierList()
}
@IBAction func addButtonPressed(_ sender: UIButton) {
performSegue(withIdentifier: "addSupplierSegue", sender: self)
}
}
По нажатию на кнопку Добавить перехожу во вью с формой, надо после заполнения полей и осуществления POST вернуться в таблицу и заново загрузить данные с сервера.
class AddSupplierViewController: UIViewController {
@IBOutlet weak var name: UITextField!
@IBOutlet weak var shortName: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func addSupplierPressed(_ sender: UIButton) {
guard let name = name.text else { return }
guard let shortName = shortName.text else { return }
SupplierService.createSupplier(url: "http://localhost:8000/finance/api/suppliers/", name: name, short_name: shortName, inn: "123456") { error in
if let error = error {
print("Failed to create", error)
return
}
DispatchQueue.main.async {
self.dismiss(animated: true, completion: nil)
}
}
}
}
Пробовал засунуть вызов fetchSupplierList() в комплишн дисмиса, пробовал во viewWillDissapear AddSupplierViewController'а. Пробовал во viewDidAppear SupplierViewController'а. Ничего не получилось :(