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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

Q&A

0回答

1026閲覧

【Swift】タイマーアプリ作成>>同じ画面でボタン別に処理を変える

退会済みユーザー

退会済みユーザー

総合スコア0

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2020/05/05 06:42

編集2020/05/05 06:53

前提・実現したいこと

【Swift】タイマーアプリ作成>>それぞれのボタンで秒数を変える

イメージ説明

ボタン別で秒数を変えたいです。
カウントする機能は実装できたのですが、ボタン別で実装する方法がわかりません。

現在はViewControllerとNextViewControllerの2つですが、
ボタンの数に応じて画面を作成するべきでしょうか?

そのやり方でなくとも、コンパクトにまとめられるやり方があるのではないかと思っており、
この場で質問させていただきます。

###画面遷移部分のコード

class NextViewController: UIViewController{ @IBOutlet weak var timerLabel: UILabel! @IBOutlet weak var timerFinishedLabel: UILabel! var timer = Timer() var count = Int() override func viewDidLoad() { super.viewDidLoad() count = 0 } @IBAction func start(_ sender: Any) { startTimer() } @IBAction func stop(_ sender: Any) { timer.invalidate() } @IBAction func back(_ sender: Any) { dismiss(animated: true, completion: nil) } // タイマーの機能 func startTimer(){ timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timeUpdate), userInfo: nil, repeats: true) } // タイマーが押されたとき @objc func timeUpdate(){ if count < 10 { count += 1 } timerLabel.text = String(count) if count >= 10 { vibrate() timerFinishedLabel.text = String("出来上がりました!!") } }

試したこと

・Switch文
・値を渡しながら画面遷移

どちらもIBActionでのやり方がわかりません。(できるのかどうかもわかりません。。。)

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

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

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

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

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

popai306

2020/05/05 06:48

画面遷移部分のソースコード貼ってもらえますか?
退会済みユーザー

退会済みユーザー

2020/05/05 06:55

かしこまりました。 該当箇所が自分で把握できないので、画面遷移部分(NextViewController)のコードを貼らせていただきます。 よろしくお願いします。
coco_bauer

2020/05/05 07:55

残り時間の表示、横一列に並べた3つの開始ボタン(固め、やや固め、半熟)、STOPボタンの上中下3段構成の画面は如何でしょう? クリックされた開始ボタンは色が変わり、STOPで元の色に戻すようにすると、どの茹で加減にしているのかが判って使いやすいと思います。 そして、画面遷移をしないのでプログラムを考えやすいのではないでしょうか。
TsukubaDepot

2020/05/05 11:00

質問者さん: popai306さんが意図されたのは、viewControllerのソースだと思います(もちろん、遷移先のソースコードが必要な時もありますが)。 意図としては、performSegueなど、画面を遷移させるためのメソッドを実行している周辺だと思いますが、やはりよく分からないと言うのであればviewControllerの方も全て載せておくといいかもしれません。
退会済みユーザー

退会済みユーザー

2020/05/05 15:43

coco_bauerさん ご教示いただいたやり方で、画面遷移しないやり方でトライしてみました。確かにプログラムは組みやすいなと実感しました。ご丁寧にアドバイスいただきありがとうございます!
退会済みユーザー

退会済みユーザー

2020/05/05 15:49

TsukubaDepotさん 画面遷移部分のコードというのは、「画面遷移をさせるためのメソッドを実行しているコード」ということなんですね。。。認識がずれていました。今回のコード自体は消してしまい、違う構成でプログラムを組んだので、以降ソースコードも載せるようにします!細かくご説明いただきありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問