ページ 11

objective-c 起動時裏画面きりかえ

Posted: 2011年1月30日(日) 22:29
by べっきー
objective-cでUtility Applicationテンプレートを使用して裏画面に設定画面を作成しているのですが、
裏画面の設定値aaaが未設定の場合(変数aaaがnilだった場合)に、起動時無条件に裏画面の設定値へ
切り替わる処理を作成しております。
裏画面に切り替える (IBAction)showInfo:(id)sender で行っている処理と全く同じコードを
viewDidLoadで実施すればよいとおもってたのですが、nilルートへいっても裏画面へ
切り替わりません。
何が悪いのでしょうか。

コード:

- (void)viewDidLoad {

	[super viewDidLoad];
	
	//aaaがnilの場合
	if(aaa == nil){
		
                //裏画面切り替え★下記処理で裏画面へ切り替えれない★
		FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
		controller.delegate = self;
		controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
		[self presentModalViewController:controller animated:YES];
		[controller release];
		
	}
	
}

//裏面切り替え時
- (IBAction)showInfo:(id)sender {    

  ★下記は正常に動作する★
	FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
	controller.delegate = self;
	controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
	[self presentModalViewController:controller animated:YES];
	
	[controller release];
}

Re: objective-c 起動時裏画面きりかえ

Posted: 2011年1月30日(日) 23:41
by Justy
 viewDidLoad はまだそのビューの初期化中です。
 その用途なら viewDidAppearあたりで試してみて下さい。

Re: objective-c 起動時裏画面きりかえ

Posted: 2011年1月31日(月) 02:46
by べっきー
viewDidAppear使用で裏画面に切り替わりました。
ありがとうございます。

しかしながらnilの場合、裏画面に自動遷移するのは初回起動時だけにしたいのですが、
裏画面から表画面に切り替え時、毎回viewDidAppearがコールされて
裏画面に戻されてしまいます。

初回起動時だけに呼ばれる別メソッドはないでしょうか。
ない場合は、グローバル変数でフラグ管理しかないですかね。。。。

Re: objective-c 起動時裏画面きりかえ

Posted: 2011年2月01日(火) 00:22
by Justy
べっきー さんが書きました:しかしながらnilの場合、裏画面に自動遷移するのは初回起動時だけにしたいのですが、
裏画面から表画面に切り替え時、毎回viewDidAppearがコールされて
裏画面に戻されてしまいます。
 それは裏画面で変数aaaに値をセットしていないからでは?
 セットするまで戻れないようにすることはできませんか?
 それとも裏画面と変数aaaは関係なく、裏画面では値をセットしないものなのでしょうか?
べっきー さんが書きました:初回起動時だけに呼ばれる別メソッドはないでしょうか。
 didFinishLaunchingWithOptionsとか applicationDidFinishLaunchingとかがそうです。
 このあたりはマニュアルを見て下さい。
べっきー さんが書きました:グローバル変数でフラグ管理しかないですかね。。。。
 表画面クラスのインスタンス変数にフラグを持つ、でもいいかと。

Re: objective-c 起動時裏画面きりかえ

Posted: 2011年2月03日(木) 08:12
by べっきー
それは裏画面で変数aaaに値をセットしていない場合でも初回起動時のみ裏返したいと考えておりました。

didFinishLaunchingWithOptionsにて実装してみます。

ありがとうございました。