質問編集履歴
3
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -292,9 +292,17 @@
|
|
292
292
|
|
293
293
|
func setTime(_ time: String){
|
294
294
|
|
295
|
-
|
295
|
+
// time には値がある
|
296
|
-
|
296
|
+
|
297
|
-
print("success")
|
297
|
+
print("success (time)")
|
298
|
+
|
299
|
+
// nilだと言われる。 didloadで行うとしっかり入っていた
|
300
|
+
|
301
|
+
print(timerLabel.text)
|
302
|
+
|
303
|
+
timerLabel.text = time // nilが入っていると言われます。
|
304
|
+
|
305
|
+
|
298
306
|
|
299
307
|
}
|
300
308
|
|
@@ -438,10 +446,6 @@
|
|
438
446
|
|
439
447
|
|
440
448
|
|
441
|
-
//delegateを使い上記クラスへアクセス
|
442
|
-
|
443
|
-
// delegate先のメッソドないのプリントがされてなかったので多分機能していません
|
444
|
-
|
445
449
|
var delTime = delegate?.timeString(time: TimeInterval(totalTime))
|
446
450
|
|
447
451
|
delegate?.setTime(delTime!)
|
@@ -474,6 +478,12 @@
|
|
474
478
|
|
475
479
|
settingView.backgroundColor = UIColor(white: 0.7, alpha: 0.8)
|
476
480
|
|
481
|
+
|
482
|
+
|
483
|
+
let vc = ViewController()
|
484
|
+
|
485
|
+
self.delegate = vc
|
486
|
+
|
477
487
|
|
478
488
|
|
479
489
|
}
|
@@ -485,3 +495,9 @@
|
|
485
495
|
|
486
496
|
|
487
497
|
```
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
## 追記
|
502
|
+
|
503
|
+
デリゲートはできました。が、ViewController下部のsetTime()ないで timerLabel.textに代入できません。
|
2
質問変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
swift: 別クラスのラベル、関数にアクセスしたい
|
1
|
+
swift: デリゲートをして別クラスのラベル、関数にアクセスしたい
|
test
CHANGED
@@ -4,9 +4,7 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
調べてみたデリゲートを実装してみたのですがどうやらメソッドにアクセスできていません。
|
8
|
-
|
9
|
-
これがデリゲートと言われるものなのでしょうか
|
10
8
|
|
11
9
|
|
12
10
|
|
@@ -30,7 +28,9 @@
|
|
30
28
|
|
31
29
|
|
32
30
|
|
31
|
+
|
32
|
+
|
33
|
-
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
|
33
|
+
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate, VCDelegate {
|
34
34
|
|
35
35
|
|
36
36
|
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
@IBOutlet weak var layerView: UIView!
|
40
40
|
|
41
|
-
@IBOutlet weak var timerLabel: UILabel!
|
41
|
+
@IBOutlet weak var timerLabel: UILabel!
|
42
42
|
|
43
43
|
@IBOutlet weak var startBtn: CustomButton!
|
44
44
|
|
@@ -48,9 +48,9 @@
|
|
48
48
|
|
49
49
|
|
50
50
|
|
51
|
-
|
51
|
+
var totalTime = 0
|
52
|
-
|
53
|
-
|
52
|
+
|
53
|
+
|
54
54
|
|
55
55
|
var timer = Timer()
|
56
56
|
|
@@ -58,10 +58,6 @@
|
|
58
58
|
|
59
59
|
var resumeTapped = false
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
static var mainVC = ViewController()
|
64
|
-
|
65
61
|
|
66
62
|
|
67
63
|
|
@@ -110,9 +106,7 @@
|
|
110
106
|
|
111
107
|
|
112
108
|
|
113
|
-
alertShow()
|
109
|
+
alertShow()
|
114
|
-
|
115
|
-
|
116
110
|
|
117
111
|
}
|
118
112
|
|
@@ -124,8 +118,12 @@
|
|
124
118
|
|
125
119
|
super.viewDidLoad()
|
126
120
|
|
121
|
+
|
122
|
+
|
127
123
|
layerView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
|
128
124
|
|
125
|
+
|
126
|
+
|
129
127
|
print(timerLabel.text!)
|
130
128
|
|
131
129
|
}
|
@@ -170,7 +168,7 @@
|
|
170
168
|
|
171
169
|
|
172
170
|
|
173
|
-
|
171
|
+
|
174
172
|
|
175
173
|
func timeString(time: TimeInterval) -> String{
|
176
174
|
|
@@ -180,7 +178,7 @@
|
|
180
178
|
|
181
179
|
let second = Int(time) % 60
|
182
180
|
|
183
|
-
|
181
|
+
print("success")
|
184
182
|
|
185
183
|
return String(format:"%02i:%02i:%02i", hour, minute, second)
|
186
184
|
|
@@ -290,12 +288,20 @@
|
|
290
288
|
|
291
289
|
|
292
290
|
|
291
|
+
|
292
|
+
|
293
|
+
func setTime(_ time: String){
|
294
|
+
|
295
|
+
timerLabel.text = time
|
296
|
+
|
297
|
+
print("success")
|
298
|
+
|
299
|
+
}
|
300
|
+
|
293
301
|
}
|
294
302
|
|
295
303
|
|
296
304
|
|
297
|
-
|
298
|
-
|
299
305
|
```
|
300
306
|
|
301
307
|
.
|
@@ -320,10 +326,28 @@
|
|
320
326
|
|
321
327
|
|
322
328
|
|
329
|
+
//プロトコル
|
330
|
+
|
331
|
+
protocol VCDelegate{
|
332
|
+
|
333
|
+
func timeString(time: TimeInterval) -> String
|
334
|
+
|
335
|
+
func setTime(_ time: String)
|
336
|
+
|
337
|
+
}
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
|
342
|
+
|
323
343
|
class settingVC: UIViewController, UITableViewDelegate, UITableViewDataSource {
|
324
344
|
|
325
345
|
|
326
346
|
|
347
|
+
var delegate: VCDelegate?
|
348
|
+
|
349
|
+
|
350
|
+
|
327
351
|
@IBOutlet weak var settingView: DesignableView!
|
328
352
|
|
329
353
|
@IBOutlet weak var tableView: UITableView!
|
@@ -346,8 +370,6 @@
|
|
346
370
|
|
347
371
|
|
348
372
|
|
349
|
-
let mainVC = ViewController()
|
350
|
-
|
351
373
|
|
352
374
|
|
353
375
|
|
@@ -414,13 +436,19 @@
|
|
414
436
|
|
415
437
|
totalTime = hours + minutes + seconds
|
416
438
|
|
417
|
-
|
418
|
-
|
439
|
+
|
440
|
+
|
419
|
-
|
441
|
+
//delegateを使い上記クラスへアクセス
|
442
|
+
|
420
|
-
|
443
|
+
// delegate先のメッソドないのプリントがされてなかったので多分機能していません
|
444
|
+
|
421
|
-
|
445
|
+
var delTime = delegate?.timeString(time: TimeInterval(totalTime))
|
446
|
+
|
422
|
-
|
447
|
+
delegate?.setTime(delTime!)
|
423
|
-
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
424
452
|
|
425
453
|
self.dismiss(animated: true, completion: nil)
|
426
454
|
|
@@ -448,12 +476,6 @@
|
|
448
476
|
|
449
477
|
|
450
478
|
|
451
|
-
//確認のため、画面が変わった後にアクセスしてプリントできるか試しましたがnilが入ってると言われました
|
452
|
-
|
453
|
-
print(mainVC.timerLabel.text!)
|
454
|
-
|
455
|
-
|
456
|
-
|
457
479
|
}
|
458
480
|
|
459
481
|
|
1
コード変種
test
CHANGED
File without changes
|
test
CHANGED
@@ -310,20 +310,6 @@
|
|
310
310
|
|
311
311
|
```swift
|
312
312
|
|
313
|
-
//
|
314
|
-
|
315
|
-
// settingVC.swift
|
316
|
-
|
317
|
-
// 12_ImageTimer
|
318
|
-
|
319
|
-
//
|
320
|
-
|
321
|
-
// Created by shota ito on 20/10/2018.
|
322
|
-
|
323
|
-
// Copyright © 2018 shota ito. All rights reserved.
|
324
|
-
|
325
|
-
//
|
326
|
-
|
327
313
|
|
328
314
|
|
329
315
|
import UIKit
|