Jak ukryć przycisk niestandardowego paska kart, gdy ukrywa się BottomBarWhenPushed jest „PRAWDA”

Używam fragmentu kodu z Tito, aby dodać niestandardowy przycisk do paska kart:https://github.com/tciuro/CustomTabBar

(Podklasa UITabbarController i dodanie niestandardowego przycisku za pomocą

// .. created a UIButton *button
[self.view addSubview:button];

)

Działa to doskonale z moją aplikacją opartą na serii ujęć, z wyjątkiem przypadku widoku podrzędnego w kontrolerze nawigacyjnym z włączoną opcją „Ukrywa dolny pasek po naciśnięciu”. Ukrywa pasek kart zgodnie z obietnicą, ale nie przycisk niestandardowy. Wygląda na to, że przycisk powinien zostać dodany jako podgląd do paska kart? Spróbowałem tego brzydkiego kodu, który nawet nie pokazał przycisku:

for(UIView *view in self.view.subviews)
{
    if([view isKindOfClass:[UITabBar class]])
    {
        [view addSubview:button];
        break;
    }
}

Jakieś pomysły?

AKTUALIZACJA: Moje rozwiązanie: w moim ApplicationDelegate definiuję następujące metody, które wywoływam zawsze, gdy są potrzebne w metodach viewWillAppear lub viewWillDisappear:

-(void)hideCenterButton:(BOOL)animated
{
    if(animated){

    [UIView animateWithDuration:0.3
                          delay:0.0f
                        options:UIViewAnimationCurveLinear
                     animations:^{
                         CGRect frame = self.centerButton.frame;
                         frame.origin.x = -100;
                         self.centerButton.frame = frame;
                     }
                     completion:^(BOOL finished){
                     }];
    }
}

-(void)showCenterButton:(BOOL)animated
{
    if(animated){

    [UIView animateWithDuration:0.35
                          delay:0.0f
                        options:UIViewAnimationCurveLinear
                     animations:^{
                         CGRect frame = self.centerButton.frame;
                         frame.origin.x = (self.view.superview.frame.size.width / 2) - (self.centerButton.frame.size.width / 2);
                         self.centerButton.frame = frame;
                     }
                     completion:^(BOOL finished){
                     }];
    }
}

Musiałem ustawić czas trwania animacji na 0,35 s, aby uzyskać płynny efekt w harmonii z paskiem kart.

questionAnswers(4)

yourAnswerToTheQuestion