У меня есть два контроллера вида. Я создал пользовательский SEGUE от первого ViewController ко второй и наоборот, и связаны как перетекает в следующий класс: (я скачал класс из интернет-учебник)Прокручивать жест до следующего вида сбой контроллера
#import "SlideLeftCustomSegue.h"
@implementation SlideLeftCustomSegue
- (void)perform{
UIViewController *srcViewController = (UIViewController *) self.sourceViewController;
UIViewController *destViewController = (UIViewController *) self.destinationViewController;
CATransition *transition = [CATransition animation];
transition.duration = 0.3;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromRight;
[srcViewController.view.window.layer addAnimation:transition forKey:nil];
[srcViewController presentViewController:destViewController animated:NO completion:nil];
}
@end
(я только изменил переход от «правых «lo« Left »в зависимости от того, с каким я viewcontroller я) Я вызываю segue с жестом салфетки.
Работает так, как ожидалось, но иногда, случайным образом, когда я сажусь, чтобы называть segue, он падает. Это ошибка, которая появляется.
pru(745,0x1ae6d5c40) malloc: *** error for object 0x170014930: Invalid pointer dequeued from free list
*** set a breakpoint in malloc_error_break to debug
(lldb)
Как это исправить?
Запустите NSLog в своем методе салфетки и проверьте, не срабатывает ли он дважды, что обычно может произойти. Вы должны включить код метода салфетки в свой вопрос. Если это проблема, вы должны создать свойство BOOL, и перед запуском анимации саблей вы установите bool isAnimating = YES; и убедитесь, что вы только запускаете анимацию, когда isAnimation == NO. Если это решит вашу проблему, дайте мне знать, я добавлю ответ, чтобы вы могли принять его здесь. –
Спасибо за ваш ответ. Я сделал то, что вы сказали, но это не сработало. Любые другие идеи? Я ценю ваше время, спасибо! @Sneak – user1935016
Мне понадобится немного больше деталей, чем «не работает», чтобы помочь вам дальше. Вы проверили и убедились, что 100%, если салфетки вызываются один раз и один раз? И вы все еще получили крах, когда его вызывали только один раз? –