Скрытие UITabBar при вращении устройства iPhone - PullRequest
2 голосов
/ 18 февраля 2010

Кто-нибудь успешно скрывал UITabbar при вращении устройства?

У меня есть один вид в контроллере UItabbar, который я вращаю (так эффективно вращается одна вкладка)

Когда это происходит, я хочупанель вкладок исчезнет ... но, похоже, ничего не работает!

Либо панель вкладок все еще остается видимой

Или она исчезает вместе с видом

Или панель вкладок исчезает ипредставление больше не вращается!

Так что, если кто-то успешно выполнил эту задачу, любой совет будет принят с благодарностью!

Спасибо

Том

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Извините за поздний ответ pk

Мне удалось повернуть и скрыть панель вкладок.

Сначала это был случай наследования UITabBarController и включения этого метода:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    //This allows us to get the rotation calls from any view in the tab bar
    // 

    return [self.selectedViewController shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation];
}

И тогда вы можете вращать только из необходимых контроллеров представления.

Чтобы скрыть панель вкладок:

Получите ссылку на делегат приложения и контроллер панели вкладок, а затем установите панель вкладок скрытой:

MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
UIView *tabBar = [delegate.tabBarController.view.subviews objectAtIndex:1];
tabBar.hidden = TRUE;

Надеюсь, это поможет!

1 голос
/ 18 февраля 2010

Вы пытались добавить наблюдателя в уведомлении UIDeviceOrientationDidChangeNotification в контроллере представления и выполняли «Hidden = true или false» для этого обратного вызова?

Я успешно выполнил это с помощью следующего кода C # с использованием MonoTouchрамки.

void Initialize ()
{
    NSNotificationCenter.DefaultCenter.AddObserver("UIDeviceOrientationDidChangeNotification", DeviceRotated);          
}

private void DeviceRotated(NSNotification notification)
{
    if ( notification.Name.Equals("UIDeviceOrientationDidChangeNotification") )
    {
        Console.WriteLine(UIDevice.CurrentDevice.Orientation.ToString());
        if ( UIDevice.CurrentDevice.Orientation != UIDeviceOrientation.Portrait ) 
        {
            tabBar.Hidden = true;
            //Plus some additional logic.
        }
        else
        {
            tabBar.Hidden = false;
        }
    }
}
0 голосов
/ 21 апреля 2010

Вы можете на самом деле скрыть панель вкладок в UItabbarController?По крайней мере, перо не позволяет вам выбрать ни один из выпадающего списка нижней панели.

...