トップ «前の日記(2012-10-04) 最新 次の日記(2012-10-08)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|

2012-10-05 [iOS]画面遷移(ルートビューコントローラの切り替え)

では、ルートビューコントローラを使って画面遷移はできないか?試してみよう。

ビューの時と同様に赤と青の二つのビューコントローラを生成し、初めは赤を表示する。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    CGRect  screenBounds = [[UIScreen mainScreen] applicationFrame];
    CGRect  windowBounds = [[UIScreen mainScreen] bounds];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    
    self.myViewController1 = [[MyViewController alloc] init];
    self.myViewController1.view.backgroundColor = [UIColor redColor];
    self.myViewController2 = [[MyViewController alloc] init];
    self.myViewController2.view.backgroundColor = [UIColor blueColor];
    
    self.isView1 = YES;
    self.window.rootViewController = self.myViewController1;
    
    [self.window makeKeyAndVisible];
    return YES;
}

そして、これもビューとのとき同様にタッチされたら切り替える。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if (self.isView1) {
        self.isView1 = NO;
        self.window.rootViewController = self.myViewController2;
    }
    else {
        self.isView1 = YES;
        self.window.rootViewController = self.myViewController1;
    }
}

画面は切り替わった。そして、viewDidLoad等が呼ばれるとログを出力するようにしたところ、alloc/initしたタイミングでviewDidLoadまでは呼ばれている。そして、ルートビューコントローラに設定したらviewWillAppear:等が呼ばれる。viewWillAppear:等が呼ばれるのは、タッチの際のルートビューコントローラの変更時でも同様だ。

_ ソースコード

GitHubからどうぞ。
https://github.com/murakami/workbook/tree/master/ios/TransitionView - GitHub

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)

トップ «前の日記(2012-10-04) 最新 次の日記(2012-10-08)» 編集