2つの異なるビューコントローラが互いに通信するようにデリゲートを適切に設定しました。データを渡す際に問題はありません(私はチェックし、データの受け渡しは成功です)。私は、新しい行を挿入するために、次のコードを使用するときに私がいる唯一の問題は、次のとおりです。デリゲートを介して別のビューコントローラから渡されたデータを使用してUITableViewに行を挿入
let indexPath = IndexPath(row: paymentMethodArray.count - 1, section: 0)
tableView.insertRows(at: [indexPath], with: .automatic)
tableView.reloadData()
それは何もしません(それが行を更新しませんが、データがアレイに渡され、追加されます)。しかし、このコードは、同じView Controllerから別のView Controller(データがAddPaymentViewControllerからこのView Controllerに送信され、AddPaymentViewControllerが現在のvcの後に来るvc)から戻ってくることなく関数を呼び出すときに機能します。私の推測では、宛先segueまたはview controllerのコードが間違っているということです。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let addPaymentViewController = segue.destination as! AddPaymentViewController
addPaymentViewController.delegate = self
}
この追加情報が必要な場合は、追加してください。ありがとうございます。
'insertRows(.../deleteRows(...'。)の直後に 'neverload ** 'reloadData()を呼び出す以外に、挿入/削除によってUIが更新されます。データソース配列に? – vadian
"let indexPath ..."の直前に配列に渡されたデータを追加します。この場合、reloadData()はどこに置かれますか? –
行を削除すると、それは冗長であり、アニメーション。 – vadian