Roteer interface met UITabBarController

Ik heb een nieuw "Tab Bar-project" gemaakt met de nieuwe Xcode 4.2. De "nieuwe" manier om met UITabBar te werken is anders: Xcode maakt geen xib-bestand (met de UITabBarController), maar het doet alles via code. Oke, laten we het doen.

Dus mijn code in didFinishLaunchingWithOptions is dit:

UIViewController *viewController1, *viewController2, *viewController3;
UINavigationController *nav1, *nav2, *nav3;

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

    viewController1 = [[gemboy_iphone alloc] initWithNibName:@"vc1" bundle:nil];
    viewController2 = [[concerti_iphone alloc] initWithNibName:@"vc2" bundle:nil];
    viewController3 = [[discografia_iphone alloc] initWithNibName:@"vc3" bundle:nil];

    nav1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
    nav2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
    nav3 = [[UINavigationController alloc] initWithRootViewController:viewController3];

}
else {
  //same thing for the iPad version
}
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:nav1, nav2, nav3, nil];
self.window.rootViewController = self.tabBarController;
[self.window addSubview:self.splash.view];
[self.window makeKeyAndVisible];
return YES;

En het werkt.

Mijn drie .m-bestanden vc1.m, vc2.m en vc3.m (en ook mijn iPad UIViewControllers) heeft deze methode

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
     return YES;
}

Het probleem is dat wanneer ik de iPhone roteer, deze alleen de statusbalk draait, en niet de TabBarController!

Weet u waarom? Bedankt

1
Het is nogal ongebruikelijk dat je drie view-controller klassen edelboy_iphone, concerti_iphone en discografia_iphone heten, maar ze bevinden zich in de bestanden vc1.m, vc2.m en vc3.m die je zegt. Weet je zeker dat dat klopt? XCode vindt die bestanden niet alleen omdat hun namen lijken op de naam van de punt. Het zal als ze echt die klassen bevatten, en je hebt het Eigenaarstype van het Bestand in de penpunten van die klassen gezet.
toegevoegd de auteur morningstar, de bron

1 antwoord

U hoeft UITabBarController absoluut niet te classificeren, en u ook niet.

Een tabbalkcontroller wordt automatisch geroteerd ALS alle view-controllers shouldAutorotateToInterfaceOrientation implementeren en YES retourneren voor dezelfde oriëntaties.

Als u een nieuw project in Xcode 4.2 maakt met de sjabloontoepassingssjabloon, ziet u dat het automatisch goed roteert.

2
toegevoegd