私はこの問題を抱えています。添付されたGIFで、私はUrgenzaViewControllerの行をタップするとHo fumatoViewControllerに戻ります。必要なのはLabel UITableViewCellで "Urgenza"はUrgenzaViewControllerで押された行のタイトルで変更されます。カスタムセルのラベルを変更するには?このようなおかげでみんなViewControllerからuitableviewcellへのデータの受け渡し
あなたUrgenzaビューコントローラで答えて
(import文の下に、あなたのクラス宣言の上に)あなたのファイルの先頭にデリゲートを作成します。あなたのUrgenza内部次に
protocol UrgenzaDelegate: class {
func menuItemSelected(item: String)
}
クラス宣言は、次のようにデリゲートのインスタンスを作成します。
weak var delegate: UrgenzaDelegate?
次に内部ではSelectRowAtIndexPath methoあなたは、セルのラベルを移入するために使用しているどんなデータソースとの「データソース」を交換してください
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let delegate = delegate {
delegate.menuItemSelected(item: dataSource[indexPath.row])
}
}
:D私はこのようなデリゲートメソッドを呼び出します。
最後に、初期ビューコントローラ(Ho fumatoViewController)で、作成したデリゲートに準拠する必要があります。
let vc = UrgenzaViewController()
vc.delegate = self // This is the important part!
self.present(vc, animated: true, completion: nil)
:あなたはUrgenzaビューコントローラをプッシュしているところはどこでもあなたがそうのようにそのデリゲートプロパティに自分自身を設定する必要があります!
extension fumatoViewController: UrgenzaDelegate {
func menuItemSelected(item: String) {
// Here is where you save the selected item to whatever data source you are using
tableView.reloadData()
}
}
そして最後に、非常に重要:あなたはこのように拡張することによって、これを行うことができます
プロトコルには弱い代理人が必要です。それ以外の場合は、小売サイクル(メモリリーク)を作成しました。あなたの代理人がゼロであるようです。 –
あなたは正しいです。弱い参照 – LoganHenderson
を作成するようにコードを更新しました。 –
- 1. ViewControllerからAppDelegateへのデータの受け渡し
- 2. スウィフト4:TableviewからViewControllerへのデータの受け渡し
- 3. 2 TableviewsからViewControllerへのデータの受け渡し
- 4. テーブルビューからViewControllerへのFirebaseデータの受け渡し
- 5. URLSessionからViewControllerへのオブジェクトの受け渡し
- 6. データの受け渡しTableview - > ViewController
- 7. グリッドビューから新しいページへのデータの受け渡し
- 8. レイアウトページへのデータの受け渡し
- 9. WebMethodへのjqueryデータの受け渡し
- 10. Vue.jsコンポーネントへのデータの受け渡し
- 11. Vueテンプレートへのデータの受け渡し
- 12. メインアクティビティへのJSONデータの受け渡し
- 13. データレイヤへのデータの受け渡し
- 14. CakePHP:コントローラからのビューへの$ this->データの受け渡し
- 15. SwingのGUIからイベントディスパッチスレッドへのデータの受け渡し
- 16. コントローラアクションから別のコントローラアクションへのデータの受け渡しcakephp
- 17. コントローラのオブジェクトからモデルメソッドへのデータの受け渡し
- 18. ビューからコントローラasp.netコアカミソリのページへのデータの受け渡し
- 19. MVCコントローラからPHPでのビューへのデータの受け渡し
- 20. PyroCMSのモジュールコントローラからウィジェットへのデータの受け渡し
- 21. AJAXからPHPへの2つのデータの受け渡し
- 22. emberjsのコントローラからモデルへのデータの受け渡し
- 23. コントローラからモデルへの受け渡し
- 24. 属性値からツールチップへのデータの受け渡し
- 25. iPhoneアプリからPHPファイルへのデータの受け渡し
- 26. ビューコントローラからタブバーコントローラへのデータの受け渡し
- 27. Ajaxポストからノードjsへのデータの受け渡し
- 28. UITableViewからUIViewControllerへのデータの受け渡し
- 29. 親から子へのデータの受け渡し
- 30. C#クライアントからDLLへのデータの受け渡し
これは委任によって容易に達成されます – OverD
OverDコードの例を教えてください。 –
あなたは代理人を使用すべきです、私はあなたに例を送ろうとします –