teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

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

2021/04/07 01:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,74 +1,3 @@
1
1
  Realmで一つのボタンに対して二種類の文字の表示を入れ替えたいです。
2
2
  ツイートする、もしくはリプライするかを実行したいのですが、ツイートの方しか表示できなくて困っています。
3
- 3日間考えているのですが、解決できないです。
3
+ 3日間考えているのですが、解決できないです。
4
-
5
- これがオブジェクトです。
6
- ```ここに言語を入力
7
- class Tweet: Object {
8
-
9
- @objc dynamic var tweetId: Int = 0
10
- @objc dynamic var caption: String = ""
11
- @objc dynamic var timestamp: Date = Date()
12
- @objc dynamic var retweetCount: Int = 0
13
- @objc dynamic var likes: Int = 0
14
- @objc dynamic var didLike = false
15
- @objc dynamic var replyingTo: String?
16
- @objc dynamic var isReply: Bool { return replyingTo != nil }
17
- let users = LinkingObjects(fromType: User.self, property: "tweets")
18
-
19
- override static func primaryKey() -> String? {
20
- return "tweetId"
21
- }
22
-
23
- }
24
- ```
25
-
26
- 下記のコードより、ツイートか、リプライかをそれぞれに応じてボタンの文字が変わるようにしたいです。
27
- handleReplyTappedでは画面遷移する際にユーザーとenumでの結果を渡しています。
28
- しかし、UploadTweetConfigurationのcase reply([Tweet])のTweetをJump to definitionをしたら ? が出てきました。
29
- また、ビルドには成功しているのですが、リプライの結果をArrayにして渡しているのですが、case .replyの場合になってくれません。それになぜクラスを参照して?になるのか分からないです。
30
-
31
- もし、ご存知の方がおりましたら、対処方法を教えてくださると助かります。お願いします。
32
-
33
- ```ここに言語を入力
34
- // TweetCell.swift
35
- var tweets: [Tweet] = [Tweet]() {
36
- didSet { configure() }
37
- }
38
-
39
- // FeedController.swift
40
- func handleReplyTapped(_ cell: TweetCell) {
41
- let tweet = cell.tweets
42
- let controller = UploadTweetController(user: user, config: .reply(Array(tweet)))
43
- let nav = UINavigationController(rootViewController: controller)
44
- nav.modalPresentationStyle = .fullScreen
45
- present(nav, animated: true, completion: nil)
46
- }
47
-
48
- // UploadTweetViewModel.swift
49
- enum UploadTweetConfiguration {
50
- case tweet
51
- case reply([Tweet])
52
- }
53
-
54
- struct UploadTweetViewModel {
55
-
56
- let actionButtonTitle: String
57
- let placeholderText: String
58
- var shouldShowReplyLabel: Bool
59
-
60
- init(config: UploadTweetConfiguration){
61
- switch config {
62
- case .tweet:
63
- actionButtonTitle = "Tweet"
64
- placeholderText = "What's happening?"
65
- shouldShowReplyLabel = false
66
- case .reply(let tweet):
67
- actionButtonTitle = "Reply"
68
- placeholderText = "Tweet your reply"
69
- shouldShowReplyLabel = true
70
- }
71
- }
72
-
73
- }
74
- ```

1

更新しました。

2021/04/07 01:09

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -28,7 +28,7 @@
28
28
  しかし、UploadTweetConfigurationのcase reply([Tweet])のTweetをJump to definitionをしたら ? が出てきました。
29
29
  また、ビルドには成功しているのですが、リプライの結果をArrayにして渡しているのですが、case .replyの場合になってくれません。それになぜクラスを参照して?になるのか分からないです。
30
30
 
31
- もし、ご存知の方がおりましたら、対処方法を教えてくださると助かります。
31
+ もし、ご存知の方がおりましたら、対処方法を教えてくださると助かります。お願いします。
32
32
 
33
33
  ```ここに言語を入力
34
34
  // TweetCell.swift