在ViewControllers之间切换而不重新创建它们

时间:2017-04-04 20:14:41

标签: ios uiviewcontroller xamarin.ios uicontainerview

目前,我正在使用 ContainerView 方法,在 ViewControllers 之间切换:

  FromViewController.WillMoveToParentViewController(null); 

    ToViewController.View.Frame = SourceViewController.View.Bounds;

    SourceViewController.AddChildViewController(ToViewController);

SourceViewController.Tansition(FromViewController,ToViewController,
0.5,UIViewAnimationOptions.TransitionCrossDissolve,() => {} ,(bool IsFinished) =>
{
   FromViewController.RemoveFromParentViewController();
   ToViewController.DidMoveToParentViewController(SourceViewController);

});

所有工作都很好,除了一个的东西:当我在它们之间切换时(ViewControllers),它们会从 重新创建。

现在我想做同样的事情,但没有重新创建当前切换的每个VC。

问题:

  1. 每次切换工作时,我都不想重新创建 VC 。以某种方式将 VC 叠加在另一个上,反之亦然,或者它应该被隐藏!?这是实现目标的好方法吗?
  2. 这种方法的内存使用情况如何?对于例如:如果我有几个 VC (如4-5数量)。这是好的,或者无论如何我需要销毁它们并从零重建?
  3. 有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

  1. 将2个视图控制器分配给该类的变量。您可以延迟加载它们,以便每次访问它们时都不会创建它们。
  2. 它完全没问题,实际上这就是UITabBarViewController的行为方式。