private void SwapCenter(UIViewController previous, JASidePanelState previousState, UIViewController next) { if (previous != next) { previous?.WillMoveToParentViewController(null); previous?.View.RemoveFromSuperview(); previous?.RemoveFromParentViewController(); if (next != null) { this.LoadCenterPanelWithPreviousState(previousState); this.AddChildViewController(next); this.CenterPanelContainer.AddSubview(next.View); next.DidMoveToParentViewController(this); } } }
private void LoadCenterPanelWithPreviousState(JASidePanelState previousState) { this.PlaceButtonForLeftPanel(); // for the multi-active style, it looks better if the new center starts out in it's fullsize and slides in if (this.Style == JASidePanelStyle.MultipleActive) { switch (previousState) { case JASidePanelState.LeftVisible: CGRect frame = this.CenterPanelContainer.Frame; frame.Width = this.View.Bounds.Width; this.CenterPanelContainer.Frame = frame; break; default: break; } } this.CenterPanel.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; this.CenterPanel.View.Frame = this.CenterPanelContainer.Bounds; this.StylePanel(this.CenterPanel.View); }