Xamarin iOS - 完全关闭 ViewController 实例

Xamarin iOS - Close ViewController instance completely

我正在尝试完全关闭视图控制器实例。 情况是用户将 select 页面上的一个值,然后将被带回主页,其中数据根据 selection 更新。 当在 selection 页面上选择一个值时,我调用

var vc = new viewController()
{
ModalPresentationStyle = UIModalPresentationStyle.FullScreen
}
PresentViewController(vc,true,null)

所以我正在创建 viewController 的新实例,以便可以显示更新的数据。 那么我该如何彻底摆脱之前的 viewController 呢?

还需要注意的一件事是 viewDidLoad() 被调用的次数与实例数相同。当这达到大约 4-5 个实例时,应用程序开始变得非常慢。所以这是我希望能够关闭实例的主要原因,这样我就不会重复调用。

我知道这对某些人来说似乎是一个相对简单的问题,但我对 Xamarin 比较陌生 iOS。

提前致谢。

有很多办法可以解决。

例如,您可以将vc设置为页面的属性,使其成为页面中的单例。并在展示之前进行讨论。

viewController vc;
if(vc!=null)
{
  vc.DismissViewController(false,null);
}

vc = new viewController ()
{
   ModalPresentationStyle = UIModalPresentationStyle.FullScreen
};

PresentViewController(vc, true, null);

更新

如果你Present一个viewController在另一个viewController,你可以在打开新页面之前讨论自己。

在viewController

public bool IsPresent { get; set; }
vc = new viewController()
{
    ModalPresentationStyle = UIModalPresentationStyle.FullScreen,
    IsPresent = true,
};
if(IsPresent)
{
  DismissViewController(false, () =>
  {
    PresentViewController(vc, true, null);
 
  });
}

else
{
    PresentViewController(vc, true, null);
}