0

im пытается реализовать пользовательский стиль перехода, чтобы исчезнуть в новом Viewcontroller, используя пользовательский segue и реализующий класс segue. Мне почти удается реализовать это, но каждый раз, когда я запускаю приложение, я получаю предупреждение/ошибку:Пользовательский переход UIViewController с использованием пользовательского класса segue

«Неуравновешенные вызовы для перехода к началу/концу для перехода».

Хотя приложения работают нормально, во время анимации немного мерцает.

вот мой код:

@implementation BlurredFadeSague 

- (void)perform{ 

    UIViewController *sourceViewController = self.sourceViewController; 
    UIViewController *destinationViewController = self.destinationViewController; 

    [sourceViewController.view addSubview:destinationViewController.view]; 

    destinationViewController.view.alpha = 0.0f; 

    [UIView animateWithDuration:0.5f 
          delay:0.1f 
         options:UIViewAnimationOptionCurveLinear 
        animations:^{ 
         destinationViewController.view.alpha = 1.0; 
        } 
        completion:^(BOOL finished){ 
         [destinationViewController.view removeFromSuperview]; 
         [sourceViewController presentViewController:destinationViewController animated:NO completion:NULL]; 
        }]; 

} 

@end 

и я называю переход образуют IBAction так:

[self performSegueWithIdentifier:@"blurred" sender:self]; 

однако я получаю CONSOL предупреждение/ошибка:

Unbalanced calls to begin/end appearance transitions for 
<DeviceControlViewController: 0x17597050>. 

Был бы очень рад за любую помощь, best vinc.

+0

Я не знаю, продолжаете ли вы по-прежнему бороться с этой проблемой, но я предполагаю, что вы получили эту ошибку, потому что вы не указываете UIKit, что вы перемещаете viewcontrollers. Когда viewcontrollers перемещаются в другие окна или контроллеры parentview, вы должны объявить это диспетчеру view с помощью '' willMoveToParentViewController: ''(http://apple.co/1VPJEqM) или [' willMoveToWindow: '] (http://apple.co/ 1Mr2qDx), используя 'nil', чтобы указать, когда он будет удален. – vrwim

ответ

0

Вы упомянули о том, что вы вызвали segue из действия кнопки. У вас также есть привязка к этой кнопке? Если это так, вы можете дважды вызвать сеанс. Это приводит к тому, что второй вызов выполняется до первой отделки и, следовательно, «несбалансированность».

Смежные вопросы