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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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回答

191閲覧

ダミー着信あぷりが作りたい

watchdogs

総合スコア54

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グッド

2クリップ

投稿2020/01/18 14:57

SWIFT初心者です。しつこく初歩的なことを質問してしまうかもしれませんが、よろしくお願いします。

<やりたいこと>
設定した時間になると通話がくるアプリを作りたいと思っています。
下記のブログで、通話がくるUIが出たという記事を見つけました。
https://qiita.com/k-boy/items/ffc03b0fa562330d704c
似たようなフリーのアプリも出ているのですが、広告が鬱陶しく自分の思ったようなものが欲しくて作成してみたいと思った次第です。
現在はタイマーアプリと組み合わせて作成しています。
CALLKITとうまく組み合わせたものを作ってみたいのですが、
教えていただけますでしょうか。

<現在の進捗およびアプリの仕様>
現在のアプリ構成は画面は2画面あります。
起動した時に開くメイン画面
ー時間の経過を表示と途中で止めれるようにストップボタンを表示
時間の設定の画面
ーPickerによって時間を選択する
ー時間を選択し確定ボタンを押すと画面はメインの画面に戻り、時間の経過がスタートする。
時間が来ると時間経過が止まる仕組みになっています。
ーーーーーーここまではできていています。
ここから先、下記を行いたい
・時間になるとUIKITを起動させて意識的に着信が来たかのようにしたい
・具体的に着信お画面に移動しバイブ+着信を流す仕様にしたい
・ストップボタンを押すとメインの画面に戻る仕様にしたい
メイン画面のプログラムを捧持します。
ここでどのようにプログラムを加えれば良いか教えていただけますでしょうか。
よろしくお願いいたします。

<メイン画面のプログラム>
import UIKit

class ViewController: UIViewController {

//タイマーの設定 var timer : Timer? //カウント(経過時間の変数を作成”) var count = 0 //設定値を扱うキーの設定 let settingKey = "teimer_value" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //初期値の設定 let settings = UserDefaults.standard //初期値の登録 settings.register(defaults: [settingKey:10]) } @IBOutlet weak var CountdownLabel: UILabel! @IBAction func StartB(_ sender: Any) { if let nowTimer = timer{ //実行中はスタートしない if nowTimer.isValid == true{ //何も処理をしない return } } //タイマーをスタート timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.timerInterrupt(_:)), userInfo: nil, repeats: true) } @IBAction func StotB(_ sender: Any) { //timerをアンラップしてnowtimerに代入 if let nowTimer = timer{ //もしタイマーが実行中だったら停止 if nowTimer.isValid == true{ //タイマー停止 nowTimer.invalidate() } } } //画面を更新する func displayUpdate() -> Int{ //Userdefaultsのインスタンスを作成 let settings = UserDefaults.standard //取得した秒数をタイマーバリューに渡す let timerValue = settings.integer(forKey: settingKey) //残り時間を作成 let remainCount = timerValue - count //残り時間をラベルに表示 CountdownLabel.text = "(remainCount)秒" //戻り値を設定 return remainCount } //経過時間の処理 @objc func timerInterrupt(_ timer:Timer){ //countに+1する count += 1 //remainCount0以下の時てタイマーを止める if displayUpdate() <= 0{ //初期化処理 count = 0 //タイマー停止 timer.invalidate() } } //画面の切り替えるタイミングで処理を行う override func viewDidAppear(_ animated: Bool) { //カウント(経過時間)をゼロにする count = 0 //タイマーの表示を更新する _ = displayUpdate() }

}

ここで以上となります。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問