Home > iPhone SDK 3 Archive

iPhone SDK 3 Archive

Object-C 基礎の基礎のメモ。クラス宣言

「Macを買うなら…」でおなじみの、秋葉館オンラインショップ
もちろん話題のiPodも本体を含め関連商品充実!

動かしながら、やってればそのうち覚えるだろうと、はじめたものの、
見たことないObject-Cという言語に、口がカラカラになるほど、
狼狽してしまった時のメモです。

書式が大分違いますが、Object-Cも、オブジェクト指向で、
ActionScript3.0と、概念とかやってることは同じなので、
書式説明を見ると、精神的ダメージを解消できました。

#import <stdio.h>
#import <objc/Object.h>

//クラス宣言 @interfaceコンパイラディレクティブ
@interface test : Object
- (void)method;
@end

// クラスを宣言から定義  @implementation コンパイラディレクティブ
@implementation test
- (void)method {
	printf("Hello, World!");
}
@end

//クラスのインスタンス化
int main() {
	id obj = [test alloc];
	[obj method];

	return 0;
}

クラスを宣言するコンパイラディレクティブ

@interface クラス名 : 親クラス名
{
インスタンス変数宣言

}
メソッド宣言
@end

メソッド宣言

- (戻り値型) メソッド名 : 仮引数リスト … ;

  • + クラスメソッド: オブジェクトではなくクラスに関連するメソッドの宣言。
  • - インスタンスメソッド:メソッドがクラスの実体であるオブジェクトする。

インスタンス化

alloc メソッドは、インスタンスを生成するためのクラスメソッド

[クラス名 メソッド名:引数リスト...]

  • メソッドを呼び出すための [ ] をメッセージ式

その他

  • id 型 :オブジェクトを表す汎用型(void型みたいな物らしい)
  • .hファイル・・・クラス自体のほかに、メンバ変数、メソッド、プロパティの宣言
  • .mファイルには、クラスの実装コードを記述

iPhoneアプリ UINavigationControllerを使用した、ナビゲーションUIのメモ。その1

「Macを買うなら…」でおなじみの、秋葉館オンラインショップ
もちろん話題のiPodも本体を含め関連商品充実!

UINavigationController

UiKitフレームワークに含まれている、UINavigationControllerを使用した、
ナビゲーションUIについての私的メモです。InterfaceBuilderなどでの設定の説明は省いてます。

UINavigationControllerクラス

NSObject
   |
   +–UIResponder
      |
      +–UIViewController
         |
         +–UINavigationController

1. UINavigationControllerクラスとは

オブジェクトの階層の外観を管理する、ナビゲーションバーのための特殊なコントローラ。アプリケーションに提供されたビューコントローラを使用して、ナビゲーションバーの設定やビューを描画することが可能。各ビューコントローラは、ナビゲーションバーのナビゲーションアイテムを持っています。

2. UINavigationCotrollerのナビゲーションでの働き

  • UINavigationControllerオブジェクトは複数のUIViewCotrollerオブジェクトを保持していて、そのオブジェクトの画面遷移を管理。
  • UINavigationControllerオブジェクトが保持しているUIViewオブジェクトと、ナビゲーションを合成したものを表示。
  • そのUIViewオブジェクトを、Windowオブジェクトの子ビューとすることで、ナビゲーションバーを含む画面が表示される。

実装サンプル

NavigationSampleAppDelegateクラスに、UINavigationControllerのメンバ変数と、プロパティ宣言を追記。

//NavigationSampleAppDelegate.h
@interface NavigationSampleAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    UINavigationController *navigationController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;

@end

NavigationSampleAppDelegate.mに、実装ディレクティブを追加。
UINavigationControllerのビューをウインドウに追加して、deallocメソッドにも追記。

//  NavigationSampleAppDelegate.m

#import "NavigationSampleAppDelegate.h"

@implementation NavigationSampleAppDelegate

@synthesize window;
@synthesize navigationController;

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
	[window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}

- (void)dealloc {
    [navigationController release];
    [window release];
    [super dealloc];
}

これで、画面遷移を制御するコントローラーの下地の追加が完了しました。

InterfaceBuilderで、MainWindow.xibのUINavigationControllerを編集

InterfaceBuilder上で、NavigationControllerで制御したいコントローラーを、Libraryから選択して、xibを編集し、ビルドすると、下記の例ようになります。

NavigationBar

次回は、スタートページと、遷移先ページ、遷移イベントの実装などについて、メモして行きたいと思います!
IBNavigationController Library

【関連記事】

iPhoneアプリ開発の環境構築

iPhoneアプリ HelloWorld

iPhoneアプリ HelloWorld その3 ViewControllerの実装

前回の、iPhoneアプリ HelloWorld その2 ViewControllerで追加したViewControllerに、イベントを実装していきます。

Clickボタンをタップすると、「Hello, World!」と、表示されるイベントを実装していきます。

1. 初期状態で、ラベルの「Hello, World!」を非表示にします

「HelloWorldViewController.h」をクリックして、ソースを表示します。

ViewController.hを開く

下記のように、messageメンバ変数を記述します。

//
//  HelloWorldViewController.h
//  HelloWorld
//
//  Created by あらびき林檎 on 10/01/07.
//  Copyright 2010 Splitchin  All rights reserved.
//

#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController {
	IBOutlet UILabel *messsage;
}

@end

保存したら、「HelloWorldViewController.m」を開きます。

「viewDidLoad」メソッドが、下記のようにコメントアウトされています。

/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}
*/
*/

コメントアウトを外して、下記のように処理を追記します

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
	[messsage setHidden:YES];
}

これで、XIBファイルを読み込んだ後の、追加処理の記述をしました。

次に、messageメンバ変数と、XIBファイルをリンクさせます。

「HelloWorldeView.xib」をクリックして、ウインドを開いたら、
 File’s Owneから、Lableまで、Ctrlを押しながら、ドラッグします。
 Outletの「message」を選択します。

File's Owner Messageにリンク

これで、HelloWorldViewControllerクラスのmessageメンバ変数と、
XIBファイルの、Labelのテキスト「Hello, World!」がリンクしました。

2. イベントハンドラの実装

「Click」ボタンをタップしたときの、イベント処理を実装します。

「HelloWorldViewController.h」を選択して、ソースを表示します。
そして、以下のように、IBActionを記述します。

//
//  HelloWorldViewController.h
//  HelloWorld
//
//  Created by あらびき林檎 on 10/01/07.
//  Copyright 2010 Splitchin  All rights reserved.
//

#import <UIKit/UIKit.h>

@interface HelloWorldViewController : UIViewController {
	IBOutlet UILabel *messsage;
}

-(IBAction)actionButtonTapped:(id)sender;

@end

次に、「HelloWorldViewController.m」を選択して、ソースを表示します。

以下のように、IBActionで、messageを表示するように設定します。

- (void)dealloc {
    [super dealloc];
}

- (IBAction)actionButtonTapped:(id)sender{
	[messsage setHidden:NO];
}

@end

「HelloWorldView.xib」を開いて、ボタンとイベントハンドラをリンクさせます。

「View」を開いて、「Rounded Rect Button」(Clickボタンを実装したUIパーツ)から、
Ctrlを押しながら、File’s Ownerにドラッグして、Eventsから「actionButtonTapped」
を選択します。

File's Owner ボタンとイベントをリンク

ビルドして実行

保存したら、「ビルドして実行」します。

HelloWorld iPhoneシミュレーター

「Click」ボタンを押すと、「Hello, World!」と表示される、
  iPhoneアプリが完成しました!

【関連記事】

iPhoneアプリ開発の環境構築

iPhoneアプリ HelloWorld

Home > iPhone SDK 3 Archive

カテゴリー
RSS あらびき林檎
スポンサー
書籍

Return to page top