2
votes

I am working on application for iPad which have CustomTabBar (3 Tabs), Navigation Bar and SplitView Controller.

Follow of application screens:

1-Login Screen (Present over SplitView) >> Forgot password (Push on login navigation)

2- Forget password if pushed on login navigation then it will be poped and then login will be dismissed on successful login.

3- On Successful Login, SplitView is shown.

How I code in 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];

I have SettingViewController in which i have given the functionality of Sign-out.

It create issues when user Signout from Portrait and Login in LandscapeView

How i code for SignOut

    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];

Landscape Mode after Signout in Portrait

When we rotate again then everything goes well. but how to solve this issue. or where i am wrong.

1

1 Answers

1
votes

You just have to add one method in your DetailViewController.m

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

The run you project and see what happens. Surly this will solve your problem