| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

IPhone Xcode 基本

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

Mac | Objective-C | iPhone Xcode | Xcode| Swift |

iPhone Xcode 基本

プロジェクトの新規作成

ファイル ー 新規プロジェクト

View-based Application を選択
  • 一つの View 利用するアプリケーションのテンプレートを提供。
  • View を管理するための View コントローラ および View を含む nib ファイル を提供

0650 xcode01.png

SDKの設定

  • プロジェクトウィンドウの左上からアクティブSDKを選択する

0636 active sdk.png

エミュレータの実行

  • ビルドして実行

0639 build exec.png

  • 実行された

0644 iphon emu.jpg

画面の作成

InterfaceBuilder を起動する

0651 xcode02.png

  • ダブルクリックで、InterfaceBuilder が起動する。

0643 interface builder.jpg

Tool Library からオブジェクトを配置

  • メニュー の Tools - Library を選択

0648 tool library.png

  • Cocoa Touch - Input & Values からオブジェクトをドラッグ

0641 drop objects.png

  • プロパティを設定

0647 properties.png

画面(View)とコードを結びつける

アウトレットとアクション

  • 画面オブジェクトを動作させるために、以下の仕掛けを使ってプログラムと結びつける。
名称 内容
アウトレット プログラムからビューオブジェクトを参照したり、操作するときに用いる名前
アクション ユーザーがビューオブジェクトを操作したときに、プログラムを呼び出すために用いる名前

アウトレットとアクションの記述

  • Classes/TestViewBaseAppViewController.h を開き、アウトレットとアクションを宣言
  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface TestViewBaseAppViewController : UIViewController {
  4. // アウトレットの宣言

IBOutlet UILabel *display;

  1. }
  2. // アクションの宣言
  3. - (IBAction)printMsg;
  4.  
  5. @end
  • アウトレットは、IBOutlet というキーワードがついたインスタンス変数
  • アクションは、戻り値が、IBAction であるインスタンスメソッド
GUIから作成することもできる

0645 make action gui.png

アウトレットやアクションの接続

Connection Inspector を起動
  • File's Owner をクリックすると、Outlet、Receive Actions に定義した値が表示されている。

0646 outlet action.png

接続
  • Connection Inspector のアウトレットの右側にある小さい丸をレイアウト上の対象のオブジェクトまでドラッグすることで結びつける
  • ラベル

0638 bind outlet.png

  • 同様にボタンとアクションを結びつけると、イベント選択のリストが表示される。

0637 bind action.png

アクションの処理

  • 設定内容からクラスファイルを書き出す。
  • メニュー - File - Write Class Files

0649 write class file.png

  • Replace にすると、生成したコードで完全に置き換え。Merge を選択すると差分を比較しながらマージ

0640 dif confirm.png

メッセージを表示するコードを記述
  • Classes/TestViewBaseAppViewController.m を編集
  1. #import "TestViewBaseAppViewController.h"
  2.  
  3. @implementation TestViewBaseAppViewController
  4. - (IBAction)printMsg {
  5. [display setText:@"Hello World"];
  6. }
  7. @end


実行

0642 executed.png