質問編集履歴
1
試した事を追加しました!
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ビューが表示されてからの経過時間を取得し、画面表示させようと試みたところクラッシュしてしまいま
|
1
|
+
ビューが表示されてからの経過時間を取得し、画面表示させようと試みたところクラッシュしてしまい困っています
|
body
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
+
こんにちは!SwiftUI初心者です。
|
3
4
|
ビューが表示されてからの経過時間を取得し、画面表示する機能を実装しようとしています。
|
4
5
|
下記コードにて実行しようとしたところ、Clashしてしまいました。(必要箇所のみ抜粋しております)
|
6
|
+
助けていただけると大変助かります。
|
7
|
+
よろしくお願いいたします。
|
5
8
|
|
6
9
|
### 発生している問題・エラーメッセージ
|
7
10
|
エラーメッセージはありませんが、プレビューしようとするとClashしてしまいます。
|
@@ -55,7 +58,56 @@
|
|
55
58
|
```
|
56
59
|
|
57
60
|
|
61
|
+
### 試した事
|
62
|
+
その後、下記のようにコードを修正しても同じくClashしてしまいました。
|
58
63
|
|
64
|
+
```ここに言語名を入力
|
65
|
+
import SwiftUI
|
66
|
+
import UIKit
|
67
|
+
import Combine
|
68
|
+
|
69
|
+
//ビューが表示されてからの経過時間を画面表示するビュー
|
70
|
+
struct ContentView: View {
|
71
|
+
@EnvironmentObject var timerHolder : TimerHolder
|
72
|
+
|
73
|
+
|
74
|
+
var body: some View {
|
75
|
+
ZStack {
|
76
|
+
Text(String(self.timerHolder.count))
|
77
|
+
}.onAppear{
|
78
|
+
self.timerHolder.start()
|
79
|
+
}.onDisappear{
|
80
|
+
}
|
81
|
+
} //body
|
82
|
+
} //ContentlView
|
83
|
+
|
84
|
+
|
85
|
+
//画面が表示されてからの時間をカウントする
|
86
|
+
class TimerHolder : ObservableObject {
|
87
|
+
@Published var timer : Timer!
|
88
|
+
@Published var count = 0
|
89
|
+
@Published var timeup:Bool = false
|
90
|
+
func start() {
|
91
|
+
self.timer?.invalidate()
|
92
|
+
self.count = 0
|
93
|
+
self.timer = Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) {
|
94
|
+
_ in
|
95
|
+
self.count += 1
|
96
|
+
if(self.count==500){self.timeup=true}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
//プレビュー
|
102
|
+
struct ContentView_Previews: PreviewProvider {
|
103
|
+
static var previews: some View {
|
104
|
+
ContentView()
|
105
|
+
}
|
106
|
+
}
|
107
|
+
|
108
|
+
```
|
109
|
+
|
110
|
+
|
59
111
|
### 補足情報(FW/ツールのバージョンなど)
|
60
112
|
Xcode ver : 11.3
|
61
113
|
最終的には一定時間経過後に自動で画面が次々と切り替わっていく機能を実装したいと考えております。
|