🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

1回答

1080閲覧

contentViewをどのように変更すればいいのか分かりません。

Rivermouth

総合スコア19

Xcode

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

Swift

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2021/02/20 12:10

編集2021/02/20 14:50

このサイトを参考に初めてSwiftでアラームアプリを作成しようとしているのですが、思ったような表示結果になりません。

問題

アラームアプリを作成し実行したのですが、実行しても何も表示されません。
viewController.swiftを編集しなければならないのでしょうか?
参考にしているサイトには以下の4つのソースコードしかありませんので、ほかをどのようにすれば表示されるのか教えて頂けると幸いです。

Alarm.swift

Swift

1import UIKit 2import AVFoundation 3 4class Alarm{ 5 var selectedWakeUpTime:Date? 6 var audioPlayer: AVAudioPlayer! 7 var sleepTimer: Timer? 8 var seconds = 0 9 10 func runTimer(){ 11 seconds = calculateInterval(userAwakeTime: selectedWakeUpTime!) 12 guard sleepTimer == nil else{return} 13 if sleepTimer == nil{ 14 sleepTimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true) 15 } 16 } 17 18 @objc private func updateTimer(){ 19 if seconds != 0{ 20 seconds -= 1 21 22 print(seconds) 23 }else{ 24 sleepTimer?.invalidate() 25 sleepTimer = nil 26 let soundFilePath = Bundle.main.path(forResource: "", ofType: "")! 27 let sound:URL = URL(fileURLWithPath: soundFilePath) 28 do{ 29 audioPlayer = try AVAudioPlayer(contentsOf: sound, fileTypeHint: nil) 30 try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: []) 31 try AVAudioSession.sharedInstance().setActive(true) 32 }catch{ 33 print("Could not load file") 34 } 35 audioPlayer.play() 36 print(audioPlayer.isPlaying) 37 } 38 } 39 40 private func calculateInterval(userAwakeTime:Date)->Int{ 41 var interval = Int(userAwakeTime.timeIntervalSinceNow) 42 if interval < 0{ 43 interval = 86400 - (0 - interval) 44 } 45 46 let calendar = Calendar.current 47 let seconds = calendar.component(.second, from: userAwakeTime) 48 return interval - seconds 49 } 50 51 @IBOutlet var sleepTimePicker: UIDatePicker! 52 53 @IBAction func alarmBtnWasPressed(_ sender: UIButton){ 54 55 } 56 57 func stopTimer(){ 58 if sleepTimer != nil{ 59 sleepTimer?.invalidate() 60 sleepTimer = nil 61 }else{ 62 audioPlayer.stop() 63 } 64 } 65 66}

SleepingViewController.swift

Swift

1import Foundation 2import UIKit 3 4class SleepingViewController: UIViewController{ 5 var currentTime = CurrentTime() 6 7 @IBOutlet var timeLabel: UILabel! 8 9 override func viewDidLoad(){ 10 currentTime.delegate = self 11 } 12 13 @IBAction func closeBtnWasPressed(_ sender: UIButton){ 14 dismiss(animated: true, completion: nil) 15 } 16 17 func updateTime(_ time:String){ 18 timeLabel.text = time 19 } 20}

SetViewController.swift

Swift

1import UIKit 2import AVFoundation 3 4class SetViewController: UIViewController{ 5 6 let alarm = Alarm() 7 8 @IBOutlet var sleepTimePicker: UIDatePicker! 9 10 override func viewDidLoad(){ 11 super.viewDidLoad() 12 sleepTimePicker.datePickerMode = UIDatePicker.Mode.time 13 sleepTimePicker.setDate(Date(), animated: false) 14 } 15 16 override func viewDidAppear(_ animated: Bool){ 17 if alarm.sleepTimer != nil{ 18 alarm.stopTimer() 19 } 20 } 21 22 @IBAction func alatmBtnWasPressed(_ sender: UIButton){ 23 alarm.selectedWakeUpTime = sleepTimePicker.date 24 alarm.runTimer() 25 performSegue(withIdentifier: "setToSleeping", sender: nil) 26 } 27 28}

CurrentTime.swift

Swift

1import Foundation 2 3class CurrentTime{ 4 var timer: Timer? 5 var currentTime: String? 6 var df = DateFormatter() 7 weak var delegate: SleepingViewController? 8 9 init(){ 10 if timer == nil{ 11 timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(updateCurrentTime), userInfo: nil, repeats: true) 12 } 13 } 14 15 @objc private func updateCurrentTime(){ 16 df.dateFormat = "HH:mm" 17 df.timeZone = TimeZone.current 18 let timezoneDate = df.string(from: Date()) 19 currentTime = timezoneDate 20 delegate?.updateTime(currentTime!) 21 } 22} 23

ファイル構成

イメージ説明

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

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

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

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

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

TsukubaDepot

2021/02/20 14:02

最初にプロジェクトを作成するときに、Interface を SwiftUI に選択したのではないでしょうか。 参照された記事は Swift なので、Interface を Swift にする必要があります。 Create New Project -> App の次の画面で選択できますので、Interface を Swift にして、打ち込まれたコードをコピーするなどして作り直して試してもらえますでしょうか。
Rivermouth

2021/02/20 14:32

コメントありがとうございます。 Interfaceの項目にはSwiftUIとStoryboardの二種類しかありません。 Storyboardでも大丈夫でしょうか?
TsukubaDepot

2021/02/20 14:33

すみません、Storyboard のtypoです。
Rivermouth

2021/02/20 14:36

ありがとうございます。 とりあえずStoryboardで新しく作成してみます。
TsukubaDepot

2021/02/20 14:37

もし、解決されたようであれば自己解決で、そうでなければご質問を編集されていただければ助かりますので、よろしくお願いいたします。
Rivermouth

2021/02/20 14:51

質問を編集致しましたので、もし可能であればお答え頂けると幸いです。
TsukubaDepot

2021/02/20 15:03

ちなみに、Storyboard の操作についてはご存知でしょうか。 コードを書くだけではなく、UI部品を Storyboard に配置し、関連づける操作が必要となります。
TsukubaDepot

2021/02/20 15:09

あと、コードの細部までは見ていませんが、オリジナルのコードと構成が異なっているようです。 記事中のリンクから、GoogleDrive にログインすることでオリジナルのソースコードを落とせるようですので、そちらを参考にされるのがよいかもしれません(ただし、Storyboardについてはご自身で作られる必要があります)。
guest

回答1

0

4つのファイルを追加しているようですが、これらを使用していないのでは?
使用しないと何も表示されないのは当然です。

せっかく追加したコードなので使ってあげましょう!

投稿2021/03/11 00:54

errolizer

総合スコア441

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問