Я пытаюсь выполнить пользовательский переход между двумя контроллерами представления. Все работает отлично, за исключением того, что в конце анимации я могу увидеть, как источник ViewController мигает на короткое время (очень короткое). Это происходит не каждый раз.Источник ViewController мигает после пользовательского segue
.h файл:
#import <UIKit/UIKit.h>
@interface HorizontalSegue : UIStoryboardSegue
@property CGPoint originatingPoint;
@end
.m файл:
#import "HorizontalSegue.h"
@implementation HorizontalSegue
- (void)perform {
UIViewController *sourceViewController = self.sourceViewController;
UIViewController *destinationViewController = self.destinationViewController;
// Add the destination view as a subview, temporarily
[sourceViewController.view addSubview:destinationViewController.view];
// Store original centre point of the destination view
CGPoint originalCenter = destinationViewController.view.center;
// Set center to start point of the button
destinationViewController.view.center = CGPointMake(self.originatingPoint.x*3, self.originatingPoint.y);
[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
destinationViewController.view.center = originalCenter;
}
completion:^(BOOL finished){
[destinationViewController.view removeFromSuperview]; // remove from temp super view
[sourceViewController presentViewController:destinationViewController animated:NO completion:NULL]; // present VC
}];
}
@end
Есть ли способ, чтобы избавиться от этой вспышки? Я попробовал некоторые из решений, представленных для подобных проблем, но ничего не работает.