SwiftによるiOSアプリ開発基本講座

UIとコードの接続に関するトラブルシューティング

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
ユーザインタフェースの部品と、プログラムのコードを接続するところで、問題が発生した場合に、それに対処する方法を説明します。
講師:
06:45

字幕

このレッスンでは、UI とコードの接続に関するトラブルシューティングということで、ユーザーインターフェースの部品とそれを制御するためのプログラムのコードの接続に問題があった場合に対処する方法を説明します。まずこちらのプログラムを見ていただきますと、このようにテキストフィールドがあって、ラベルがあってボタンがあって、それぞれに対応した形でnameField textField が用意されて、ラベルが用意されて、そしてアクションが用意されるとという形で、一件何も問題が無いかのように見えるんですが、これ実はお互いに接続がされていない状態です。このように接続が忘れられている状態でアプリケーションを実行しようとしても、当たり前のことですが何も起きません。テキストフィールドに何を入力しても、ボタンを押しても画面を押しても何も反応してもらえません。このようなことというのは通常あまり起きない問題のように思います。例えばこの nameFieldというのを作るときに左側のこのフィールドから右クリックドラッグでこうやって線を伸ばしてnameField を作りますよと、こうやって書いてやるとnameField は必ず接続されています。 接続されたことは実は、このコードの横にあるこの丸いボタンをこうやってマウスでオーバーしてやることで、対応するアウトレットがですねハイライトされるので確認できるんですけど、これは自分で作ったときにはこのアウトレットのコードを自分で書いたときにはこのように自動的に結び付けられるということがないので、さっきのような問題が起きます。例えば messageLabel というのをこうやってテキストで打ち込んで用意しました。そうするとやはりこれアウトレットIBOutlet というのがついているのでこの白丸がつくんですが、その白丸の先がこちらについていません。ですので先ほどのように、接続されていないという問題が起きます。ですので接続忘れがないように必ずこの白丸のところを一度マウスオーバーしてみて、自分でこうやってアウトレットを用意したときにはこの白丸のところからこれ逆にここから持っていくことができますからね。この白丸のところを左クリックでドラッグしてこのラベルのところに持っていけば、これが messageLabel ですよといって結びつけることができますから、こちらからこの インターフェースの部品から結びつけることもできますし、インターフェースの部品から結びつけるときには、一旦これ解除しますけど、結びつけるときにはこっちからこの messageLabel のところにですね、こうやって上のところまでこの messageLabel の文字の上のところまで持っていけば、アウトレットにこうやってラベルの方から結びつけることができますしこの messageLabel の方から持っていくことも先ほどのようにできます。 ボタンのアクションも同じですね。ボタンが押されたときのアクションも、右クリックドラッグでこの buttonPressed のところにこうやって持っていくと結びつけることができますので、忘れずに結びつけておきましょう。以上の操作で正しくユーザーインターフェースの部品とプログラムのコードを結びつけることができます。尚インスペクタを使って、今このインスペクタの表示ボタンを右上にある表示ボタンを押しましたけど、インスペクタ を使って、インスペクタ の右端のところにもConnection インスペクタという、このコネクション専用のインスペクタ がありますのでここを見てやるとですね、このボタンとかラベルとかにそれぞれどのようなコネクションが貼られているのかということを確認することができます。例えば Touch Up Inside のボタンが押されてそのまま離されたらアクションが起きますよというこのアクションがいらないなと思ったら、この Connectionインスペクタ のところのこの✕ボタンをですね、押してやることでこのアクションの結びつきを解除することができます。それから接続を忘れるのの次に多い問題が、接続詞たアウトレットを消してしまうというときに起きる問題です。 実際にちょっとやってみましょう。例えばですねここに新しいボタンを追加したとします。ちょっとオブジェクトのライブラリを再度開きまして、ここに新しいボタンを何か追加したとします。このボタンに対してアウトレットを用意します。右クリックドラッグで引っ張りまして例えば newButton という名前をつけてアウトレットを用意します。これでアウトレットが用意されたので、このボタンですねアウトレットを使って参照することができます。今何もこのボタンにアクションを割当てていませんけど、このまま実行して現在のところはこのボタン押したりしても何も反応しませんけれども、何も問題ありません。問題が出てくるのは、このままこのプログラムのコードのこのアウトレットに対応しているこのコードを削除してしまったときのことです。この newButton のアウトレット、もういらなくなったのでプログラムの中から削除しようこうやって削除してしまって一見なにもないように見えるんですけど、この状態でシミュレータを実行するとちょっと困った問題が起きます。このようにですねちょっと怖い画面になって、アプリケーションの実行が起動時点で中断してしまいます。 これなんでかといいますと先ほどプログラムのコード部分のちょっと元に戻しますね。一旦これアプリケーションの実行を終了しまして、プログラムのコードのところとそれからユーザーインターフェースの部品を並べて表示します。先ほどこのアウトレットのnewButton のコードの部分は削除したんですが、実はこれ、このユーザーインターフェースの方に設定されているアウトレットから結び付けられていますよという情報はまだ削除されていないんですね。なので先ほどのような問題が起きます。このボタンをですね右クリックして確認しますと、ここにこの newButton という既に消えたはずなんですけどアウトレットからこのボタンに結び付けられていますよというこういう情報が残っていることがわかります。ですのでこのようなときにはこの newButton のこの接続を、この右クリックのこのパネルからですね切断してやることによって、問題を解決することができます。この状態でアプリケーションを実行してやると、特に問題なく実行することができました。このレッスンでは、ユーザーインターフェースとコードを結びつけるところのトラブルシューティングの方法を説明しました。

SwiftによるiOSアプリ開発基本講座

このコースではiPhoneやiPadのアプリを作ってみたい方に向けて、簡単なiOSアプリを作りながらSwiftを使ったXcodeでの開発手順をひとつずつ丁寧に解説していきます。各レッスンではiOSのフレームワークの機能を確認しながら、アウトレットやアクション、MVCモデルやDelegateといったアプリ開発に必要な知識を説明します。

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

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

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

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