Если вы прочитали документацию:
По умолчанию представление в fromView заменяется в иерархии представлений представлением в toView. Если оба представления уже являются частью вашей иерархии представлений, вы можете включить параметр showHideTransitionViews в параметре параметров, чтобы просто скрыть или показать их.
Итак, чтобы сохранить ваши представления в иерархии, добавьте эту опцию:
@IBOutlet var showingSideView: shadowView!
@IBOutlet var hiddenSideView: shadowView!
UIView.transition(from: showingSideView,
to: hiddenSideView,
duration: 0.7,
options: [.transitionFlipFromLeft, .showHideTransitionViews])
{ (isFlipped) in
self.showingBack = !self.showingBack
}
Редактировать:
Только для уточнения ...
Apple теперь рекомендует НЕ использовать weak
для @IBOutlets
, но это не влияет на проблему здесь. При использовании .showHideTransitionViews
ссылка не станет нулевой, даже если для @IBOutlets
задано слабое значение.