blogtitle
RSS Twitter
  • TOP
  • このブログについて
  • imotenもくじ
  • VPS拡張編
    • VPS機能拡張
    • セキュリティ対策
    • WordPress設定
  • ブログ主おすすめ
    • おすすめアプリ
    • おすすめ周辺機器
    • Xcode
    • ターミナルサービス設定
  • レシピ(料理)

【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ4【『初めてのiOSアプリケーション』その2】

Day:2013.2.2 0:05 Comments: 4

code Mac Xcode

Xcode


さて、初心者の心を軽くへし折ってくれる『初めてのiOSアプリケーション』その2です。

View Controller上にあるテキストフィールド、ラベル、ボタンがデータをやりとりできるよう、View Controllerに関連づけていきます。

プログラムは何をしているか理解しようと思わず、とりあえずやってみて結果を見ていく方が使えるようになっていく気がする。

今回から一気に5段階くらい難易度が上がります。

理解できなくても、ふーんあっそ。くらいに思って進めてOK。

とりあえずやってみることが大事。


【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ3【『初めてのiOSアプリケーション』その1】 | くずのは探偵事務所


ViewController.hのコードを表示


ドキュメントを読んでもさっぱり訳がわからないけど、書いてあることをひたすらつづけていれば動くので、淡々とつづけていきます。

右上にあるAssistant Editorをクリック。


skitchw6XjoR



するとViewControllerの横にViewController.hのコードが表示される。


skitchXhpbkU



ボタンをView Controllerにアクション接続


View Controllerにボタンをアクション接続する。

ボタンをクリックし、Controlキーを押しながら@interface〜の下にドラッグアンドドロップする。


skitch0Mz023



すると、入力用ダイアログが現れる。


skitchjwWzWc



ConnectionをActionに変更し、Nameは『changeGreeting:』と入力。

Typeは初めからidになっているはずだが、もし違うならidに変更する。

ミスがないか確認したらConnectをクリック。


skitchAytOCI



@interface〜の下に、

- (IBAction)changeGreeting:(id)sender;

というコードが追加された。


skitchvdkKSt



このコードは、ボタンがタップされたときに『changeGreeting:』という処理(メソッド)を行う、という意味。

つまり、アクション接続とはボタンをタップしたりと何かしらユーザーがアクションを起こしたときに処理を行うという事。

しかし、changeGreeting:という処理内容はまだ記述していないため、今現在シミュレータでボタンをタップしても何もおこらない。

(id)senderは引数のことだが、詳しい意味は割愛。

別の機会にやります。



テキストフィールドをView Controllerにアウトレット接続


同じような方法でテキストフィールドもView Controllerにアウトレット接続する。

テキストフィールドをクリックし、Controlキーを押しながら- (IBAction)〜の下にドラッグアンドドロップする。


skitch6gecMM



ボタンと同じように入力用ダイアログが現れる。


skitchkJosb4



Nameに『textField』と入力し、Cnnectをクリック。

初めからConnectionはOutlet、TypeはUITextField、StorageはWeakになってるはずだが、違う場合は変更しよう。


skitchfJF9KX



- (IBAction)〜の下に、

@property (weak, nonatomic) IBOutlet UITextField *textField;

というコードが追加された。


skitchpSxLgS



ラベルをView Controllerにアウトレット接続


最後にラベルをView Controllerにアウトレット接続する。

テキストフィールドをクリックし、Controlキーを押しながら@property〜の下にドラッグアンドドロップする。


skitchig6rs9



Nameに『label』と入力し、Connectをクリック。


skitch1myqNu



@property (weak, nonatomic) IBOutlet UITextField *textField;の下に、

@property (weak, nonatomic) IBOutlet UILabel *label;

というコードが追加された。


skitchN9GoRi



アウトレット接続はアクション接続と逆。

今回の場合アクション接続は、ボタンを押したらメソッド(処理内容)である『changeGreeting:』に処理を行わせる、というものだが、アウトレット接続は『changeGreeting:』が実行した結果をプロパティ『label』が受け取る、というものになる。

プロパティ『label』が何を受け取るのかはまだメソッド(処理内容)である『changeGreeting:』に何も記述されていないため不明。


プロパティってなに?


プロパティとは、今回の場合、ViewController.h(ヘッダー)で管理する変数とそのデータ。

何が何だかわからないと思うので別のものに例えると、


家(ViewController.h)

お父さん「お母さんにプレゼントを買ってあげよう。Amazonで買おう。これにするか。」(アクション)


Amazon(ViewController.m)

Amazonがお父さんが購入した商品を段ボールに詰め、お母さん(プロパティ)宛にプレゼント(処理結果)を出荷。

(Amazonが行ったすべての行為全体がメソッド)


家(ViewController.h)

ヤマト「Amazonからお届け物でーす」(アウトレット)

お母さん(プロパティ)「まぁ!お父さんからのプレゼント(処理結果)!」


こんな感じのイメージ。

ちなみにお父さんは誰もプレゼントをくれないのでプロパティではない。

お父さんの宿命。


プロパティはヘッダーにて処理結果を保持する。



関連づけを確認する


View ControllerにボタンなどのUIが関連づけられたか確認する。

右上にあるStandard editerボタンをクリックする。


skitch5W4jXT



Organizerの下にあるメニューの一番右にあるConnections inspectorをクリックすると、関連づけが表示される。


skitch7POa7P



が、見てもイマイチ意味が解らないと思うが、気にしなくていい。

いずれ解るようになる・・・と思う。



デリゲート接続


シミュレータを起動してテキストフィールドをクリックするとキーボードが現れて文字を入力できるけども、キーボードのDoneをクリックしてもウンともスンとも言わない。

キーボードも閉じない。

いきなり詰む。


skitch5dJyg8



なぜなら、Doneをクリックしたらどういう処理を行うという事を何も記述していない。

そういうことまですべてこちら側で決めなければならない。

なので、Doneを押したらテキストフィールドに書かれている文字をどこかに渡して処理をしてもらう、ということを今回は行う。

デリゲートとは、日本語にすると委譲。

つまり、丸投げ。

テキストフィールドに記述されたテキストをDoneをタップしたときに、どこぞに入力されたテキストをぶん投げるための設定を行う。

テキストフィールドをクリックし、controlキーを押しながら黄色い丸にドラッグアンドドロップする。


skitchMNnzIi



メニューウィンドウが現れるので、delegateをクリック。


skitchQVEH5a



これでとりあえずデリゲート接続は終了。

デリゲート先に何も記述はしてないので、今はシミュレータを起動してキーボードのDoneを押しても何も変わらない。

後日この処理を書いていきます。



一気に難易度がアップ


プロパティやメソッド、アクション接続、アウトレット接続、デリゲート接続と、専門用語を連発されて鼻白んだ人も多いと思う。

ワタシもです。

でも、この初めてのiOSアプリケーションは侮れない。

筆字でいう『永』とも言える。

Objective-Cでの基本的な事をすべてぶち込んである。

完全に理解しようとは思わなくていい。

とにかく作ってみることが大事。

次回は『changeGreeting:』が行う処理(メソッド)のコードを書き込んでいきます。


関連記事


    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ5【『初めてのiOSアプリケーション』その3】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ7【四則演算計算機を作る その1】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ6【『初めてのiOSアプリケーション』その4】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ3【『初めてのiOSアプリケーション』その1】
    • 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ14【懐中電灯アプリを作る】


« 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ5【『初めてのiOSアプリケーション』その3】 【Objective-C】XcodeでiPhoneアプリを作る基礎を学ぶ3【『初めてのiOSアプリケーション』その1】 »



Comments: 4

  1. bavarotti1981 より:
    2013年2月2日 12:19 AM

    こんばんは。
    だんだんと専門用語も出てきて、ゆっくり読み返ししようと思います(笑)
    プロパティの下り分かり易かったです。
    次回も楽しみにしています。
    時間がある時に初回から復習し直してみます

    返信
    • 葛葉 キョウジ(管理人) より:
      2013年2月2日 12:35 AM

      専門用語が山のようにあるんですけど大分削り取りましたw
      それでもやっぱり専門用語は出てきますね。

      返信
  2. kazuki より:
    2013年8月4日 6:05 AM

    ものすごく分かりやすかったです!
    いままで分からなくて、もやもやしてた頭がすっきりしました笑

    返信
    • 葛葉 キョウジ(管理人) より:
      2013年8月4日 1:22 PM

      ありがとうございますヽ(´ー`)ノ
      お役に立てて幸いです。

      返信
返信をキャンセルする。

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

  • お知らせ


    毎週日曜25時から25時30分までは定期サーバーメンテナンスタイムです。
    サーバーの再起動やアップデートを行いますので、ブログに接続出来なくなる場合があります。

  • About

    kyoji_kuzunoha HN:葛葉キョウジ
    Apple信者です。
    iPhoneを使いたくてSoftBankにMNPしたら、電波がクソ過ぎてトランシーバー並みに使えなかったので、なんとかdocomo回線で使おうと研究した結果、SIMフリーiPhoneにたどり着く。
    でも、docomoメールが使えないので色々調べたらimotenという神サーバーソフトがあることを知り、VPSと出会う。
    imotenのために仕方なく借りたVPSを色々いじっているうちにのめり込み、チューニングしまくってAirVideoサーバー、WebDAVサーバー、ミュージックストリーミングサーバーにセットアップして超快適な環境に。
    設定方法などを自分のメモとして書きためつつ、現在はXcodeを勉強中。
    ゲーム、ガジェット、料理が大好きな30オーバーのオッサンです。
    毎日ブログ更新してます。(日曜は休み)
  • 最近のコメント

    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 匿名 より
    • いい蕎麦屋。悪い蕎麦屋。 に どすこい より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 山野邊弘次 より
    • いい蕎麦屋。悪い蕎麦屋。 に やまがた より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に たけ より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 葛葉 キョウジ(管理人) より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 匿名 より
    • 【白黒】iPhoneの画面の色が反転してしまった時の対処法【ネガ】 に 匿名 より
  • 最近の投稿

    • 【内臓保護】酒量を思い切り減らしてみた【アル中予防】
    • 毎日豆乳を飲んでみた【1ヶ月目】
    • MacBookに対応しているMoshiのUSB-C充電ケーブルを買ってみた
    • MacBookにインストールしたアプリ
    • MacBook2016の使用感その1
    • 【Mac】ことえりのライブ変換を使ってみた【El Capitan】
    • ジャストシステムのポータブルバッテリーを買ってみた
    • 【MacBook】iPhoneのテザリングについて
    • MacBook2016とアクセサリを購入してみた
    • iPhone6PlusからiPhone6sに乗り換えてしばらく経った現在の使用感
  • 人気記事

    • 【imoten】SIMフリーiPhoneで、iモードメール@docomo.ne.jpを使ってみた。設定編【yahoo!版】 481 comments
    • 【Gmail】CentOS6.x(64bit)でimotenを設定して@docomo.ne.jpメールを使う【主にさくらインターネット編】 268 comments
    • imotenQ&A 184 comments
    • 【DTI】SIMフリーiPhoneでdocomo.ne.jpメールを送受信する方法【outlook.com編】 130 comments
    • 【Gmail】CentOS5.x(32bit)でimotenを設定して@docomo.ne.jpメールを使う【主にDTI編】 126 comments
    • 【iPhone】imotenの送信メールをSSLで暗号化する【docomoメール】 112 comments
    • 【MyCloud】さくらVPSをAirVideoサーバーにする【ストリーミング】 99 comments
    • docomo版iPhone5s(5c)用SIMについてちょこっと考察してみた 99 comments
    • 【imoten】SIMフリーiPhoneで、iモードメール@docomo.ne.jpを使ってみた。設定編【Gmail編】 97 comments
    • SPモードメールをiPhoneでプッシュさせる【docomo.ne.jp】 97 comments
  • アーカイブ

  • カテゴリー

    • amazon
    • android
    • Apple
      • AppStore
      • iPad
      • iPhone
      • Mac
    • AppleWatch
    • blog
      • WordPress
      • 移転作業ログ
    • code
    • docomo
    • Game
      • 100万人の信長の野望
      • 3DS・DS
      • PCgame
      • PlayStation
      • XBOX360
    • MVNO
    • News
    • SIM
    • VPS
      • imoten
        • DTI
        • imoten機能拡張
        • さくらVPS
        • はじめに
      • セキュリティ対策
      • 機能拡張
    • Windows
      • ターミナルサービス
    • Xcode
    • おすすめアプリ
    • おすすめ周辺機器
    • もっと評価されるべき
    • グルメ
      • レシピ
    • リモートデスクトップ
    • レビュー
    • 健康
      • ダイエット
      • ランニング
    • 動画
      • TAS
      • スーパープレイ
    • 周辺機器
    • 学習
      • 英語
    • 未分類
    • 雑談
  • カウンタ


    全体:11331221

    今日:1660

    昨日:2673

Copyright © くずのは探偵事務所,All right reserved.