2

CustomTabBar(3タブ)、ナビゲーションバー、SplitViewコントローラーを備えたiPad用のアプリケーションに取り組んでいます。

アプリケーション画面のフォロー:

1-ログイン画面(SplitViewに表示)>>パスワードを忘れた(ログインナビゲーションを押す)

2-ログインナビゲーションでプッシュされた場合、パスワードを忘れると、パスワードがポップされ、ログインが成功するとログインが解除されます。

3-ログインに成功すると、SplitViewが表示されます。

AppDelegateでのコーディング方法:

self.detailViewController = [[[DetailViewController alloc] initWithNibName:@ "DetailViewController" bundle:nil] autorelease]; UINavigationController * detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:self.detailViewController] autorelease];

customTabBarCont = [[CustomTabBarController alloc] init];
self.splitViewController = [[[UISplitViewController alloc] init] autorelease];
self.splitViewController.delegate = self.detailViewController;
NSArray *viewControllers = [[[NSArray alloc] initWithObjects:customTabBarCont,detailNavigationController, nil] autorelease];
self.splitViewController.viewControllers = viewControllers;
self.detailViewController.splitViewController = self.splitViewController;
self.window.rootViewController = self.splitViewController;
[self.window makeKeyAndVisible];

loginVC =  [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease];
UINavigationController *loginNavigationController = [[[UINavigationController alloc] initWithRootViewController:loginVC] autorelease];
[self.splitViewController presentViewController:loginNavigationController animated:NO completion:nil];

サインアウトの機能を提供したSettingViewControllerがあります。

ユーザーがPortraitからサインアウトし、LandscapeViewにログインすると問題が発生します

サインアウトのコーディング方法

    self.loginVC =  [[[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil] autorelease];


if ([app_delegate.detailViewController.masterPopoverController isPopoverVisible]) {
                [app_delegate.detailViewController.masterPopoverController dismissPopoverAnimated:NO];
            }
      UINavigationController *loginNavigationController = [[[UINavigationController alloc] initWithRootViewController:self.loginVC] autorelease];

ポートレートでサインアウトした後のランドスケープモード

再び回転すると、すべてがうまくいきます。しかし、この問題を解決する方法。または私が間違っているところ。

4

1 に答える 1

1

DetailViewController.mにメソッドを1つ追加するだけです。

- (BOOL)splitViewController:(UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation {
return NO;
}

プロジェクトを実行して、何が起こるかを確認します。確かにこれはあなたの問題を解決します

于 2013-03-04T07:46:18.137 に答える