質問編集履歴

1

基礎を見直すと解決できます。

2021/04/07 01:14

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,121 +3,3 @@
3
3
  delegateを通して別のコントローラーでボタンを使用したいのですが、ボタンが反応しなくなってしまいました。
4
4
 
5
5
  TweetCell.swiftではボタンと関数を定義しております。
6
-
7
-
8
-
9
- ```ここに言語を入力
10
-
11
- // TweetCell.swift
12
-
13
- protocol TweetCellDelegate: class {
14
-
15
- func handleLikeTapped(_ cell: TweetCell)
16
-
17
- }
18
-
19
-
20
-
21
- weak var delegate: TweetCellDelegate?
22
-
23
-
24
-
25
- public lazy var likeButton: UIButton = {
26
-
27
- let button = UIButton(type: .system)
28
-
29
- button.setImage(UIImage(named: "like_unselected"), for: .normal)
30
-
31
- button.tintColor = .darkGray
32
-
33
- button.setDimensions(width: 20, height: 20)
34
-
35
- button.addTarget(self, action: #selector(handleLikeTapped), for: .touchUpInside)
36
-
37
- return button
38
-
39
- }()
40
-
41
-
42
-
43
- @objc func handleLikeTapped(){
44
-
45
- // print("Likes Tapped")
46
-
47
- delegate?.handleLikeTapped(self)
48
-
49
- }
50
-
51
- ```
52
-
53
-
54
-
55
- TweetCellのボタンをFeedControllerで使い、Viewには表示されているのですが、ボタンが反応しません。
56
-
57
- しかし、TweetCellでdelegateを実行する前にprintで確認したら反応しましたが、別のコントローラーで使うと何も反応してくれません。
58
-
59
-
60
-
61
- 実行はできて、何のエラーも出てきません。
62
-
63
-
64
-
65
- 一体どこが間違えているのでしょうか?プロトコルの使い方を間違えていたりしてないでしょうか?
66
-
67
-
68
-
69
- もしこのコードを見て分かる方がいたら、ご教授お願いします。
70
-
71
-
72
-
73
-
74
-
75
- ```ここに言語を入力
76
-
77
- extension FeedController: TweetCellDelegate {
78
-
79
-
80
-
81
- func handleLikeTapped(_ cell: TweetCell) {
82
-
83
- print("Likes Tapped")
84
-
85
- let indexPath = self.collectionView.indexPath(for: cell)
86
-
87
- let tweetObject = tweets[indexPath!.row]
88
-
89
-
90
-
91
- try! realm.write {
92
-
93
- tweetObject.didLike.toggle()
94
-
95
- if tweetObject.didLike {
96
-
97
- cell.likeButton.tintColor = .lightGray
98
-
99
- cell.likeButton.setImage(UIImage(named: "like_unselected"), for: .normal)
100
-
101
- tweetObject.likes -= 1
102
-
103
- realm.add(tweetObject, update: .all)
104
-
105
- } else {
106
-
107
- cell.likeButton.tintColor = .red
108
-
109
- cell.likeButton.setImage(UIImage(named: "baseline_favorite_black_24pt_1x"), for: .normal)
110
-
111
- tweetObject.likes += 1
112
-
113
- realm.add(tweetObject, update: .all)
114
-
115
- }
116
-
117
- }
118
-
119
- }
120
-
121
- }
122
-
123
- ```