以上のような2つの画面をお互いに遷移するようなアプリケーションを作る。
-
アプリケーション本体を用意する
[New Project]->
[Empty Project]プロジェクトがつくられ、AppDelegate.hとAppDelegate.mができる。
-
1枚目の画面を用意する
[New File]->
[UIViewCotroller subclass]->
[class名]ViewController1
[with XIB]チェックを外すプロジェクト内にViewController1.hとViewController1.mができる。
-
2枚目の画面を用意する
[New File]->
[UIViewCotroller subclass]->
[class名]ViewController2
[with XIB]チェックを外すプロジェクト内にViewController2.hとViewController2.mができる。
-
ViewController1.mのコードを書く
ViewController1.m
〜略〜
- (void)viewDidLoad
{
[super viewDidLoad];
// ラベルを追加
UILabel* label = [[[UILabel alloc] initWithFrame:self.view.bounds] autorelease];
label.text = @"Hello, world!";
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor blackColor];
label.textColor = [UIColor blackColor];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:label];
// ボタンを追加
UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"画面遷移" forState:UIControlStateNormal];
[button sizeToFit];
CGPoint newPoint = self.view.center;
newPoint.y += 50;
button.center = newPoint;
button.autoresizingMask =
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[button addTarget:self action:@selector(buttonDidPush)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
〜略〜
- (void)buttonDidPush
{
// 自分自身を背面へ移動
[self.view.window sendSubviewToBack:self.view];
}
- ViewController2.mのコードを書く
ViewController1.m
〜略〜
- (void)viewDidLoad
{
[super viewDidLoad];
// ラベルを追加
UILabel* label = [[[UILabel alloc] initWithFrame:self.view.bounds] autorelease];
label.text = @"こんばんは、世界!";
label.textAlignment = UITextAlignmentCenter;
label.backgroundColor = [UIColor blackColor];
label.textColor = [UIColor blackColor];
label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:label];
// ボタンを追加
UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"画面繊維" forState:UIControlStateNormal];
[button sizeToFit];
CGPoint newPoint = self.view.center;
newPoint.y += 50;
button.center = newPoint;
button.autoresizingMask =
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
[button addTarget:self action:@selector(buttonDidPush)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
〜略〜
- (void)buttonDidPush
{
// 自分自身を背面へ移動
[self.view.window sendSubviewToBack:self.view];
}
- AppDelegate.hのコードを書く
AppDelegate.h
〜略〜
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
UIViewController* _viewController1;
UIViewController* _viewController2;
}
〜略〜
- AppDelegate.mのコードを書く
AppDelegate.m
〜略〜
#import "AppDelegate.h"
#import "ViewController1.h"
#import "ViewController2.h"
@implementation AppDelegate
@synthesize window = _window;
- (void)dealloc
{
[_viewController1 release];
[_viewController2 release];
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
// self.window.backgroundColor = [UIColor whiteColor];
_viewController1 = [[ViewController1 alloc] init];
_viewController2 = [[ViewController2 alloc] init];
[self.window addSubview:viewController1_.view];
[self.window addSubview:viewController2_.view];
[self.window bringSubviewToFront:_viewController1.view];
[self.window makeKeyAndVisible];
return YES;
}
〜略〜
これで実行すれば2つのビューが交互に表示されるはずである。
ブログやってます:PAPA-tronix !