1

私のデバイスをロードすると、ランドスケープモードになります。私の親View Controllerもlanscapeモードですが、nibファイルpresentModelViewController:からロードしたのはportraitモードです。

 [self performSelectorInBackground:@selector(loginIn) withObject:nil];
    loadingAlert = [[LoadingAlert alloc] initWithNibName:@"LoadingAlert" bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loadingAlert];
    [navigationController setModalPresentationStyle:UIModalPresentationFormSheet];
    [navigationController.navigationBar setBarStyle:UIBarStyleBlack];
    [navigationController.navigationBar setOpaque:NO];

    [navigationController.navigationBar applyCustomColor];

    UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
    [self presentModalViewController:navigationController animated:NO];

アプリケーションが初めて実行されたときにのみ発生し、最初以外は正常に動作します。

4

2 に答える 2

1

shouldAutorotateToInterfaceOrientationクラスのメソッドをチェックしLoadingAlertます。すべてのオリエンテーションをサポートしている場合は、次のようになります。

-

 (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

// Return YES for supported orientations

return ((interfaceOrientation == UIInterfaceOrientationPortrait) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (interfaceOrientation == UIInterfaceOrientationLandscapeRight));

}
于 2012-08-29T08:55:08.487 に答える
0

私はこのメソッドでモーダルビューコントローラーを呼び出すために使用します

[self performSelector:SEL withObject:id afterInterval:time];

その後、私の問題は解決しました。方法はわかりませんが、メインスレッドにはGUIを正しくするためのサイクルがあると思います。

于 2012-08-30T11:45:41.587 に答える