2017-02-12 19 views
0

У меня есть два контроллера вида. Я создал пользовательский 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) 

Как это исправить?

+0

Запустите NSLog в своем методе салфетки и проверьте, не срабатывает ли он дважды, что обычно может произойти. Вы должны включить код метода салфетки в свой вопрос. Если это проблема, вы должны создать свойство BOOL, и перед запуском анимации саблей вы установите bool isAnimating = YES; и убедитесь, что вы только запускаете анимацию, когда isAnimation == NO. Если это решит вашу проблему, дайте мне знать, я добавлю ответ, чтобы вы могли принять его здесь. –

+0

Спасибо за ваш ответ. Я сделал то, что вы сказали, но это не сработало. Любые другие идеи? Я ценю ваше время, спасибо! @Sneak – user1935016

+0

Мне понадобится немного больше деталей, чем «не работает», чтобы помочь вам дальше. Вы проверили и убедились, что 100%, если салфетки вызываются один раз и один раз? И вы все еще получили крах, когда его вызывали только один раз? –

ответ

-1

Создать UIViewController OBJ как этот

SomeViewController * someViewController = [self.storyboard instantiateViewControllerWithIdentifier: @ "SomeViewController"];

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