Home > Tags > Object-C

Object-C

iPhoneアプリ アラートボックスを表示する。

安いインクをお探しですか?

iPhone AlertBox

AlertBoxAppDelegate.h

#import <UIKit/UIKit.h>

@class AlertBoxViewController;
@interface AlertBoxAppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
	AlertBoxViewController *viewController;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet AlertBoxViewController *viewController;

@end

AlertBoxViewController.h

#import <UIKit/UIKit.h>

@interface AlertBoxViewController : UIViewController {
}
- (IBAction) displayView:(id) sender;

@end

AlertBoxViewController.m

//アラートボックスを表示するdisplayViewメソッド
-(IBAction) displayView:(id) sender{

    UIAlertView *alert = [[UIAlertView alloc]
						  initWithTitle:@"アラート画面"
						  message:@"ボタンを押しました"
						  delegate:self
						  cancelButtonTitle:@"閉じる"
						  otherButtonTitles:nil];
    [alert show];
    [alert release];
}

後は、InterfaceBuilderで、Alertを表示させるトリガーのボタンと、
File’s OwnerをCtrl+ドラッグで結んで、「displayView」を結びます。

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

Home > Tags > Object-C

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

Return to page top