it-swarm.com.ru

Как скрыть контроллер панели вкладок?

Как скрыть контроллер панели вкладок? Я хочу скрыть контроллер панели вкладок двойным нажатием на UIImageView.

21
Gaurav Patel

Попробуйте этот код:

[self.tabBarController.tabBar setHidden:YES];

где tabbarcontroller необходимо определить ...

ПРАВКА

AppDelegateFileName *appDelegate = (AppDelegateFileName *) [[UIApplication sharedApplication] delegate];
[appDelegate.tabbarController.tabBar setHidden:YES];

перед этим убедитесь, что вы создали объявление @property tabbarController в файле appDelegate .h.

33
DShah

При использовании раскадровок вы можете просто снять флажок в Инспекторе атрибутов вашего ViewController. Он называется «Скрыть нижнюю панель при нажатии». Действительно очень удобно, и нет необходимости снова обрабатывать отображение tabBar после перехода назад из вашего viewBontroller без tabBar. Я не знаю, в какой XCode-версии это было представлено, но оно есть для XCode 6+.

8
pIkEL

Используйте TapGesture Recognizer для обнаружения двойных нажатий на UIIMageview. Затем вызовите метод обнаружения двойного двойного касания. Добавьте следующую строку кода в этот метод.

self.tabBarController.tabBar.hidden=YES;

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

5
booleanBoy

Используйте код ниже, чтобы скрыть/показать контроллер панели вкладок в анимированном стиле.
hiddenTabBar является переменной BOOL.

- (void) hidetabbar {

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.0];

    for(UIView *view in objtabbar.view.subviews)
    {

        if([view isKindOfClass:[UITabBar class]])
        {

            if (hiddenTabBar) {
                [view setFrame:CGRectMake(view.frame.Origin.x, 431, view.frame.size.width, view.frame.size.height)];
            } else {
                [view setFrame:CGRectMake(view.frame.Origin.x, 480, view.frame.size.width, view.frame.size.height)];
            }
        } else {
            if (hiddenTabBar) {
                [view setFrame:CGRectMake(view.frame.Origin.x, view.frame.Origin.y, view.frame.size.width, 431)];
            } else {
                [view setFrame:CGRectMake(view.frame.Origin.x, view.frame.Origin.y, view.frame.size.width, 480)];
            }

        }
    }

    [UIView commitAnimations];

    hiddenTabBar = !hiddenTabBar;
}
4
AppsDev

Swift 2.1:

self.tabBarController!.tabBar.hidden = true
1
LevinsonTechnologies

UIViewController имеет свойство

@property(nonatomic, readonly, retain) UITabBarController *tabBarController

который вы можете установить:

self.tabBarController.tabBar.hidden = YES;
1
drct

Если вы хотите изменить анимацию, вы можете использовать этот код:

extension UITabBarController {

func set(visible: Bool, animated: Bool, completion: ((Bool)->Void)? = nil ) {

    guard isVisible() != visible else {
        completion?(true)
        return
    }

    let offsetY = tabBar.frame.size.height
    let duration = (animated ? 0.3 : 0.0)

    let beginTransform:CGAffineTransform
    let endTransform:CGAffineTransform

    if visible {
        beginTransform = CGAffineTransform(translationX: 0, y: offsetY)
        endTransform = CGAffineTransform.identity
    } else {
        beginTransform = CGAffineTransform.identity
        endTransform = CGAffineTransform(translationX: 0, y: offsetY)
    }

    tabBar.transform = beginTransform
    if visible {
        tabBar.isHidden = false
    }

    UIView.animate(withDuration: duration, animations: {
        self.tabBar.transform = endTransform
    }, completion: { compete in
        completion?(compete)
        if !visible {
            self.tabBar.isHidden = true
        }
    })
}

func isVisible() -> Bool {
    return !tabBar.isHidden
}
}

Подробнее вы можете прочитать в https://stackoverflow.com/a/50101262/1797194

0
bazyl87

Objective-C

[self.tabBarController.tabBar setHidden:YES];

Свифт 3 

self.tabBarController?.tabBar.isHidden = true

Swift 2

self.tabBarController?.tabBar.hidden = true
0
Allen Wang

Попробуйте это, когда вы толкаете представление к новому виду:

self.tabbarconroller.tabbar.hidden = YES;
0
AJPatel