質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

892閲覧

【swift】 timer date label 画面遷移をしても継続してカウントダウンしていて欲しい

ahoahomarumaru

総合スコア26

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/06/08 06:56

イメージ説明

イメージ説明

イメージ説明

イメージ説明

イメージ説明

swift

1import UIKit 2 3class NestViewController: UIViewController { 4 5 var count = 0 6 var timer : Timer? 7 8 var date : Date? 9 var date2 : Date? 10 11 var nowNumber = 0 12 13 var ccccc : Double = 0 14 15 @IBOutlet weak var countLabel: UILabel! 16 17 @IBOutlet weak var currentLabel: UILabel! 18 19 override func viewDidLoad() { 20 super.viewDidLoad() 21 22 23 24 25 } 26 27 override func viewWillAppear(_ animated: Bool) { 28 super.viewDidDisappear(animated) 29 30 31 32 } 33 34 35 @IBAction func startButton(_ sender: UIButton) { 36 37 38 if timer?.isValid != true { 39 40 41 if nowNumber == 20 || nowNumber == 30 { 42 if nowNumber == 20 { 43 date = Date() 44 timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerInterruptTwenty(_:)), userInfo: nil, repeats: true) 45 46 } else if nowNumber == 30 { 47 timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerInterruptThirty(_:)), userInfo: nil, repeats: true) 48 } 49 50 } 51 } 52 53 } 54 55 @IBAction func stopButton(_ sender: UIButton) { 56 57 } 58 59 @IBAction func twentyButton(_ sender: UIButton) { 60 labelUpdate(1200) 61 nowNumber = 20 62 } 63 64 @IBAction func thirtyButton(_ sender: UIButton) { 65 labelUpdate(1800) 66 nowNumber = 30 67 } 68 69 @objc func timerInterruptTwenty(_ timer : Timer) { 70 count += 1 71 date2 = Date() 72 let datenosa = date2!.timeIntervalSince(date!) 73 74 ccccc = 1200.00 - datenosa 75 76 labelUpdate(Int(ccccc)) 77 78 if datenosa >= 1200 { 79 count = 0 80 timer.invalidate() 81 } 82 } 83 84 @objc func timerInterruptThirty(_ timer : Timer) { 85 count += 1 86 date2 = Date() 87 let datenosa = date2!.timeIntervalSince(date!) 88 89 if datenosa >= 1800 { 90 count = 0 91 timer.invalidate() 92 } 93 94 } 95 96 97 98 99 100 func labelUpdate (_ aaa : Int) { 101 let s = aaa % 60 102 let m = (aaa - s) / 60 103 currentLabel.text = String(format: "%02d : %02d", m,s) 104 105 } 106 107 108} 109

iPhoneを閉じた場合とホームボタンを押してアプリを閉じた場合、再度開くと思い通りに動くのですが
遷移した場合はlabelがリセットされます。どうしたら良いですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問