ダウンロード サンプルソース (605.4 KB)
iPhoneプロジェクトのプログラミングを始めるとき、最初に学ぶものの1つが"View Controller"です。本稿では、View Controllerを使って、ビューの切り替え、ビュー切り替え時のアニメーションの設定、ビュー間のデータの受け渡しを行う方法について説明します。
はじめに
iPhoneプロジェクトのプログラミングを始めるとき、最初に学ぶものの1つがView Controllerです。単純なアプリケーションを動かすのに必要な作業の量に、初心者はひるんでしまうかもしれません。けれども、iPhoneのUI処理のかなりの部分はView Controllerのプログラミングで行うので、View Controllerの仕組みを理解することはiPhoneプログラミングに不可欠です。
この記事では、iPhoneプログラミングにおけるView Controllerの概念と使い方を説明します。この記事を読めば、View Controllerを的確に理解でき、素晴らしいアプリケーションを作成するのに役立つでしょう。
プロジェクトの作成
いつものとおり、ここでも実際のプロジェクトを作成して、何がどうなるのか見てみるのが1番です。まず、Xcodeを起動し、「VCExample」という名前のView-based Applicationプロジェクトを新規作成します(図1を参照)。
基本の理解
この新しいプロジェクトには、Xcodeで自動的に作成される複数のプロジェクトテンプレートが含まれています。これらのテンプレートには、通常の動作に必要な基本的コードが入っているので、このコードについて見ていきましょう。
iPhoneアプリケーションを作成したことがない場合は、筆者の前の記事「iPhone徹底解剖:最初の一歩(原文)」と、次の補足記事「Objective-Cのファイルの種類」を参照してから、この記事に進むことをおすすめします。
【補足記事】Objective-Cのファイルの種類
Objective-Cでは、どのクラスも拡張子.hと.mの2つのファイルで定義します。.hファイルには、クラス自体のほかに、メンバ変数、メソッド、プロパティの宣言を記述します。.mファイルには、クラスの実装コードを記述します。
XIB(.xib)ファイルは、アプリケーションのUIを表すファイルです。XIBファイルの編集には、Interface Builderを使うのが最も簡単で、iPhoneアプリケーションのUIを視覚的に作成できます。
ではまず、この新しいプロジェクトに4つのソースコードファイルが含まれていることを確認してください(図2を参照)。
最初の2つ、VCExampleAppDelegate.hとVCExampleAppDelegate.mは、アプリケーションのロードとアンロードを処理します。次の2つ、VCExampleViewController.hとVCExampleViewController.mは、ビューのロードとアンロードを処理するView Controllerクラスを定義します(ビューはiPhoneの画面のようなものです。.NETプログラミングのWindows Formに相当します)。また、2つのNIBファイル、VCExampleViewController.xibとMainWindow.xibも含まれています。MainWindow.xibには、アプリケーションのロード先となるメインウィンドウが含まれます。そこには、基本的に「VCExampleViewController.xib」ファイルに含まれるビューがロードされます。
「VCExampleAppDelegate.h」ファイルの内容は次のようになっています。
#import <UIKit/UIKit.h>
@class VCExampleViewController;
@interface VCExampleAppDelegate :
NSObject <UIApplicationDelegate> {
UIWindow *window;
VCExampleViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet
VCExampleViewController *viewController;
@end
このファイルでは、「VCExampleViewController」という名前のView Controllerオブジェクトを定義しています。アプリケーションの初期化が完了すると、applicationDidFinishLaunching:イベントが発生します。このイベントは「VCExampleAppDelegate.m」ファイルで処理され、このView Controllerのビューがロードされます。
#import "VCExampleAppDelegate.h"
#import "VCExampleViewController.h"
@implementation VCExampleAppDelegate
@synthesize window;
@synthesize viewController;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
- (void)dealloc {
[viewController release];
[window release];
[super dealloc];
}
@end
「MainWindow.xib」をダブルクリックすると、Interface Builderでこれを編集できるようになります。MainWindow.xibウィンドウを見てください(図3を参照。リストモードの画面です)。
ここには、VCExampleViewController型のView Controller、つまりVCExampleViewControllerクラスのインスタンスが含まれています。このView Controllerインスタンスを選択し、Identity Inspectorウィンドウを表示すると、これを確認できます(図4を参照)。
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Wei-Meng Lee(Wei-Meng Lee)
Microsoft MVP受賞者。Microsoft社の最新テクノロジー実地研修を専門とするDeveloper Learning Solutions社を創設。.NETとワイヤレステクノロジーの開発者、指導者として知られる。国際的なカンファレンスでたびたび講演し、.NET、XML、ワイヤレステクノロジーに関す...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア

![図1 新しいプロジェクトの作成:Xcodeの[新規プロジェクト]画面で[View-based Application]を選択する](http://cz-cdn.shoeisha.jp/static/images/article/4485/1s.gif)


