Пользовательский переход дает несбалансированные вызовы для начала/окончания перехода. Ошибка

Я использовал код, показанный ниже, чтобы представить новый контроллер представления плавным скользящим движением. Фактическая анимация работает отлично, но когда анимация заканчивается, все виды исчезают, и у меня остается пустой экран. В консоли написано сообщение об ошибке

«Несбалансированные вызовы для начала/конца смены внешнего вида для ‹ Rocket_Game18GameViewController: 0x155e288f0 >»

class SlideRightToLeft: UIStoryboardSegue {
override func perform() {
    var sourceVC:UIViewController = self.sourceViewController as UIViewController
    var destVC:UIViewController  = self.destinationViewController as UIViewController

    let sourceVCFrame = sourceVC.view.frame
    let width = destVC.view.frame.size.width
    sourceVC.view.addSubview(destVC.view)
    destVC.view.frame = CGRectOffset(sourceVCFrame, width, 0)

    UIView.animateWithDuration(1.5, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animations: {
        sourceVC.view.frame = CGRectOffset(sourceVCFrame, -width, 0)
        }, completion: {
            finished in
            destVC.view.removeFromSuperview()
            sourceVC.presentViewController(destVC, animated: false, completion: nil)
        })
    }
}

Пожалуйста, спросите, если вам нужна дополнительная информация, спасибо!


person Jack Chorley    schedule 23.07.2014    source источник
comment
Вы не вызываете ни один из методов контроллера дочернего представления (willMoveToParentViewController: и т. д.).   -  person duci9y    schedule 23.07.2014
comment
Извините, я очень новичок в этом и адаптировал этот код из онлайн-учебника, в котором нет ничего похожего на то, что вы сказали, не могли бы вы привести мне пример?   -  person Jack Chorley    schedule 23.07.2014
comment
Это было бы плохо. Вы говорите, что вы очень новичок в этом. Если это так, я предлагаю держаться подальше от сдерживания контроллера представления, это тема среднего уровня. Начните с чего-нибудь попроще. Тем не менее, документация Apple — хорошее место для поиска соответствующего примера кода.   -  person duci9y    schedule 23.07.2014
comment
Я хотел сказать, что новичок в переходах, а не в xcode и swift, но все равно спасибо за вашу помощь. пойду проверю документацию   -  person Jack Chorley    schedule 23.07.2014
comment
Это была единственная документация, которую я смог найти, и она устарела, так как presentModalViewController устарел. Есть идеи? developer.apple.com/library/ios/featuredarticles/   -  person Jack Chorley    schedule 23.07.2014


Ответы (1)


Теперь я понял, что я делал неправильно, преобразовывая чужой код Objective-C в Swift. Оказывается, вся моя идея с пользовательской анимацией была неправильной, и когда была выпущена iOS7, они изменили то, как это было сделано. Вот ссылка на блог, где я нашел решение, если кто-то еще захочет его увидеть.

https://github.com/jbradforddillon/TransitioningExample

person Jack Chorley    schedule 24.07.2014