public IPanelViewController GetOrCreate(PanelType type) { if (controllers.TryGetValue(type, out var controller)) { return(controller); } controller = new PanelViewController(type); controllers.Add(type, controller); return(controller); }
public void ClearAndPush() { IPanelViewController controller; if (provider != null) { controller = provider.GetOrCreate(panelType); } else { controller = new PanelViewController(panelType); } stack.ClearAndPush(controller); }
public void Push() { if (clearBeforePush) { ClearAndPush(); return; } IPanelViewController controller; if (provider != null) { controller = provider.GetOrCreate(panelType); } else { controller = new PanelViewController(panelType); } stack.Push(controller); }