はじめてのiOSアプリ開発

キャンセルボタンを追加して、設定画面に戻る機能を追加しよう

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
カウント画面の画面にキャンセルボタンを追加して、カウントダウン途中に時間設定の画面に戻る機能を追加します。
講師:
09:56

字幕

このレッスンでは カウントダウンの画面に キャンセルボタンを追加して カウントダウンを行っている途中でも 設定画面に戻る機能を追加します そしてまた カウントダウンが 終了した時にも 設定画面に自動的に戻る機能を 追加したいと思います それでは実装していきましょう Xcode の停止ボタンを押して 実行停止して そして時間の― キャンセルのボタンを 追加したいと思います キャンセルのボタンは この「カウントダウン」の ラベルのすぐ上に 追加したいと思いますので このすぐ上の所に ボタンをドラッグ & ドロップで 追加して 上の所に用意しておきましょう これを何故 上の方に追加するかと言うと 下の方に追加すると 親指が届きやすくて 結構簡単に押せてしまうので タイマーの機能としては よろしくないと思いますので 押しにくい上の辺りを 選択して ここにタイマー中止のボタンを 用意したいと思います 「タイマー中断」という 名前にしましょう そして このボタンを大きめにして この様にして「タイマー中断」の ボタンを用意しました これに対して制約を設定します まず Width と Height を セットして ボタンの大きさは変えません ということで この Constraints を追加して 今度は Align の所で これが画面の横方向の 中央に表示されるように Horizontal Center in Container をセットしておきます そして この 「タイマー中断」のボタンが 下にあるラベルの位置を中心に 計算されるように 「タイマー中断」の所から 右クリックで足を延ばして あるいは コントロールキー + クリックで 構いませんけれども これで「 99:99 」のラベルを中心に Vertical Spacing です 上のこの Vertical Spacing をセットします という風にして この「タイマー中断」のボタンを 用意します では この「タイマー中断」のコードを 書いていきたいと思いますので 次に Assistant editor を表示して そして Automatic にすると ViewController.m が選択できます 時に Manual が選択されていますので この左上にある このボタンを押して Manual から Automatic に 変えると ViewController.m が選択できます ここに「タイマー中断」のボタンが 押された時の コードを書きます 「タイマー中断」のボタンを 右クリック または コントロールキーを押しながらの 左クリックで ボタンを押したまま 右側に持っていって Insert Action そして「 stopTimer 」 この様な名前で アクションを用意しましょう では Connect ボタンを押して アクションを追加します この stopTimer の中で やらないといけないことというのは 2つあります 1つはこれまで実行されていた timer を この繰り返し呼び出されている この timer ですね どこだっけ? ここですね この繰り返し呼び出されている timer を一旦ストップすること それから 元の設定画面に戻るということ この2つです では 実際にやってみましょう ViewController.m の編集に戻ります 一番下ですね stopTimer を先ほど追加しましたので この中で 今動いている timer を中断するために timer に対して 無効化をする invalidate という メソッドを呼び出します こうすることで timer が中断できます そして 現在の画面から 設定画面に戻るためには self に対して dismissViewControllerAnimated というメソッドを呼び出します 最初の引数は この ViewController です 最初 開始ボタンを押した時に 横方向にクルッと回転して タイマーが始まりましたけど 同じ様にクルッと回転して 元に戻す時に ここに YES を入力しておきます もし これを No にすると クルッと回るアニメーションなしに 瞬間的に戻ります どちらでもお好みです その後ろの Completion の所は 特に今回は何も設定しませんので 「何もありません」ということを表す nil を設定しておきます そして ; を入力して これで timer をストップする機能を 実装できました 一度 実行しておきましょう アプリケーションを実行します 中断するので 5分くらいで良いと思います カウントダウンを開始して 「タイマー中断」の このボタンを押すと はい タイマーが中断されて 設定画面に戻るようになりました では 次に このカウントダウンが終了した時に 画面が設定画面に戻るのを 追加したいと思います これは実はものすごく簡単です この「タイマーが終了しました」と メッセージを表示している AlertView この AlertView の 「 OK 」ボタンが押された そのタイミングで dismissViewControllerAnimated が 呼び出されるようにすると 設定画面に戻ります この AlertView から カウントダウンタイマーの 「タイマーが終了しました」と メッセージが呼び出されて 「『 OK 』ボタンが押されました」 と 貰える様にするには ここの delegate を設定します 今は delegate を使わないといって nil を設定していましたけれど 今度は この delegate に self と書いて 「 Alert の『 OK 』ボタンが 押されたと伝えてください」と ここに書きます 但し ここで self を設定するためには AlertView からのメッセージを 受け取るように この ViewController を 調整しておかないといけないので ViewController.h をいじります ViewController.h の @interface と 書かれている行の一番最後に < の記号を書いて ここに UIAlertViewDelegate そして > こうやって < と > を使って UIAlertViewDelegate をその中に書きます こう宣言しておかないと この AlertViewDelegate を 使うことはできません それでは AlertView の Delegate をセットして alert からのメッセージを 受け取れるようになったので 次に alert のメッセージを 受け取るためのメソッドを ここに追加したいと思います そのためのメッセージは 始めから用意されているのです (void) と書いた後ろに alert と書くと後ろに 補完されると思います 一番上にある alertView clickedButtonAtIndex というメソッドです この一番上のメソッドを追加します これはカウントダウンタイマーの alert メッセージが 何かボタンが押された度に 何番目のボタンが押されたかという 情報と共に呼び出される というメソッドです これが呼び出された時に 画面が元の設定画面に 戻れば良いので dismissViewControllerAnimated を さっきと同じ様に YES と nil を引数にして呼び出す これで完璧だと思います それでは実際に実行して 結果を確かめておきましょう 今 アプリケーションが実行中ですので 一回 実行停止ボタンを押して アプリケーションを実行しなおします では いきましょう カウントダウンタイマーです テストしやすいように 1分を指定します そして カウントダウンを開始しましょう カウントダウンが開始しました 早送りで見ていただきました 残り 10 秒のところから 5 4 3 2 1 となって これでカウントダウンが終了します そしてタイマーが終了したこの 「 OK 」ボタンを押したタイミングで 先ほどの alertView 云々の メソッドが呼び出されますので これで dismissViewController が 呼び出されて 設定画面に戻ります これで カウントダウンタイマーの 全ての機能を 実装することができました このレッスンでは キャンセルボタンを追加する方法 そして カウントダウン終了時に 設定画面に戻る方法について説明しました

はじめてのiOSアプリ開発

このコースではXcodeを使ったiOS用アプリの開発に必要な基礎知識を学びます。Xcodeの基本的な使い方から本格的なゲーム制作のためのSprite Kitを用いた制作方法まで、カウントダウンタイマーやスピード暗算ゲームなど3つの簡単なiOS用アプリを作りながら説明します。このコースを見れば、本当に必要なアプリ開発の知識を着実に身に付けられるでしょう!

5時間55分 (52 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2015年06月04日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。