Не удалось сделать панель вкладок видимой

У меня есть приложение, в котором я скрываю и показываю вкладку в событии, ниже приведен метод, который я использую, когда я пытаюсь его скрыть, он отлично работает. Но когда я пытаюсь сделать это видимым, это не работает.

-(void)setTabBarVisible:(BOOL)visible animated:(BOOL)animated completion:(void (^)(BOOL))completion {

  //  RootViewController* tabBarController = (RootViewController*)self.navigationController.parentViewController.parentViewController;
    UITabBarController *tabBarController = self.tabBarController;

    CGFloat duration = (animated)? 0.3 : 0.0;

    CGRect frame = tabBarController.tabBar.frame;
    CGFloat height = frame.size.height;
    CGFloat offsetY = (visible)? -height : height;


    CGRect playerFrame = player.view.frame;
    CGRect toolBarFrame = self.toolbar.frame;

    [UIView animateWithDuration:duration animations:^{

        CGRect fr = CGRectOffset(frame, 0, offsetY);
        tabBarController.tabBar.frame = fr;
        if((!visible && ![self toolBarOnBottom]) || visible) {
            self.toolbar.frame = CGRectOffset(toolBarFrame, 0, offsetY);
            [self.toolbar layoutIfNeeded];
        }

    } completion:completion];


}

Я, когда я отлаживаю код во второй раз, когда я вызываю этот метод, чтобы сделать его видимым, рамка панели вкладок равна нулю, я думаю, что это проблема. Я тестирую это на Xcode 9 с iOS 11 SDK. Я не уверен, имеет ли Безопасная зона какое-либо отношение к этому.

Любая помощь будет оценена по достоинству.


person vishal dharankar    schedule 14.12.2017    source источник
comment
1. Случайно ли tabBarController nil? 2. Когда вы вызываете этот метод? (от каких других методов). 3. Используете ли вы автомакет?   -  person danypata    schedule 14.12.2017
comment
tabbarcontroller не равен нулю, и да, я использую автоматическую компоновку   -  person vishal dharankar    schedule 14.12.2017


Ответы (1)


Поскольку я хотел получить рабочее решение, в итоге использовал это, отлично работает с автомакетом и безопасной зоной.

Скрыть UINavBar и UITabBar одновременно с анимацией

person vishal dharankar    schedule 14.12.2017