回答編集履歴

2

訂正

2020/06/05 03:24

投稿

退会済みユーザー
test CHANGED
@@ -5,6 +5,8 @@
5
5
  ```swift
6
6
 
7
7
 
8
+
9
+ // 委任先
8
10
 
9
11
  class HogeViewController: UIViewController, UITableViewDataSource ,PiyoDelegate {
10
12
 
@@ -18,6 +20,10 @@
18
20
 
19
21
  let cell = // 略
20
22
 
23
+      
24
+
25
+ // 委任先であることを設定する
26
+
21
27
  cell.piyoDelegate = self
22
28
 
23
29
  return cell
@@ -26,7 +32,9 @@
26
32
 
27
33
 
28
34
 
35
+    // 実際の処理はProtocolを批准したここで定義する
29
36
 
37
+    // 値を受け取る、遷移処理を実行する
30
38
 
31
39
  func piyopiyo(str: String) {
32
40
 
@@ -62,9 +70,13 @@
62
70
 
63
71
 
64
72
 
73
+ // 委任元
74
+
65
75
  class FugaTableViewCell: UITableViewCell {
66
76
 
67
77
 
78
+
79
+ // 委任元でProtocolをインスタンス化
68
80
 
69
81
  weak var piyoDelegate: PiyoDelegate?
70
82
 
@@ -78,6 +90,10 @@
78
90
 
79
91
 
80
92
 
93
+ // Delegateメソッドを委任元で実行
94
+
95
+ // コレクションビューセルをタップする/値を送る
96
+
81
97
  piyoDelegate?.piyopiyo(str: str)
82
98
 
83
99
  }

1

適当に追記

2020/06/05 03:24

投稿

退会済みユーザー
test CHANGED
@@ -28,11 +28,27 @@
28
28
 
29
29
 
30
30
 
31
- func piyopiyo() {
31
+ func piyopiyo(str: String) {
32
32
 
33
- self.performSegue(withIdentifier: "goSecond", sender: nil)
33
+ self.performSegue(withIdentifier: "goSecond", sender: str)
34
34
 
35
35
  }
36
+
37
+
38
+
39
+ private func prepare(for segue: UIStoryboardSegue, sender: Any?) {
40
+
41
+ if let vc = segue.destination as? NewsWebView {
42
+
43
+ let str = sender as? String
44
+
45
+ vc.targetURL = str ?? "https://google.co.jp/"
46
+
47
+ }
48
+
49
+ }
50
+
51
+
36
52
 
37
53
  }
38
54
 
@@ -40,7 +56,7 @@
40
56
 
41
57
  protocol PiyoDelegate: AnyObject {
42
58
 
43
- func piyopiyo()
59
+ func piyopiyo(str: String)
44
60
 
45
61
  }
46
62
 
@@ -58,7 +74,11 @@
58
74
 
59
75
  didSelectItemAt indexPath: IndexPath) {
60
76
 
77
+ let str: String = "PIYO"
78
+
79
+
80
+
61
- piyoDelegate?.piyopiyo()
81
+ piyoDelegate?.piyopiyo(str: str)
62
82
 
63
83
  }
64
84