Проблемы с ориентацией в приложении UITabbar - PullRequest
0 голосов
/ 18 ноября 2010

Я работаю над приложением панели вкладок, в котором я вызвал контроллер навигации следующим образом. Проблема в том, что я не могу ориентироваться в ландшафтном режиме.Кто-нибудь, пожалуйста, скажите, что я ошибся?

С уважением, сатиш

-(IBAction)click


{

    tabBarController = [[UITabBarController alloc] init];

    NSMutableArray *localControllersArray = [[NSMutableArray alloc] initWithCapacity:5];

    UINavigationController *localNavigationContriller;

    FavouritesViewController *master;
    master = [[FavouritesViewController alloc] initWithTabBar];
    localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:master];
    [localNavigationContriller.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
     [localControllersArray addObject:localNavigationContriller];
    //[localNavigationContriller release];
    [master release];

    NeedViewController *need;
    need = [[NeedViewController alloc] initWithTabBar];
    localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:need];
    [localNavigationContriller.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
    [localControllersArray addObject:localNavigationContriller];
    //[localNavigationContriller release];
    [need release];

    DontNeedViewController *dontneed;
    dontneed = [[DontNeedViewController alloc] initWithTabBar];
    localNavigationContriller=[[UINavigationController alloc] initWithRootViewController:dontneed];
    [localNavigationContriller.navigationBar setBarStyle:UIBarStyleBlackTranslucent];
    [localControllersArray addObject:localNavigationContriller];
    //[localNavigationContriller release];
    [dontneed release];

    tabBarController.delegate=self;
    tabBarController.viewControllers = localControllersArray;
    [localControllersArray release];

    [[[UIApplication sharedApplication] keyWindow] addSubview:tabBarController.view];
}

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Слушай, чувак, тебе нужно переопределить функцию mustrotate на YES на всей панели вкладок, как будто у тебя в приложении 3 панели вкладок, иди туда соответствующий класс и

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    // Return YES for supported orientations.

    return YES;
}

во всех соответствующих классах панели вкладок ... надеюсь, это поможет, если оно помолится за меня ...

0 голосов
/ 02 октября 2012

Невозможно изменить ориентацию для одного вида на вкладке, а для другого нет.Если указан TabBar, то все подпредставления (вкладки) должны иметь одинаковую ориентацию.Вы должны установить ориентацию в каждом ViewController и в TabBarController.

Так что просто добавьте это во все основные контроллеры панели вкладок

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return YES;

    return toInterfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
}

В вашем случае те контроллеры, куда этот код нужно добавитьявляются FavouritesViewController, NeedViewController & DontNeedViewController

...