在没有 UI 导航器控件的 uiviewcontroller 之间切换

2024-04-22

我想以编程方式在 2 个 UIViewController 类之间切换,而不需要任何额外的 UI 控制,例如向应用程序添加 UI 的 UITabBarController。

我的 main 使用 addSubView 加载第一个视图控制器。

    vc1 = new viewc1();
    window.AddSubview(vc1.View);
    window.MakeKeyAndVisible ();    

我可以使用 PresentModalViewController 从第一个视图控制器加载第二个视图控制器

    vc2 = new viewc2();
    PresentModalViewController(vc2, true);

但我需要来回切换,并释放旧的视图控制器以节省内存。 做这个的最好方式是什么?关闭ModalViewControllerAnimated(假);在第二个视图控制器中不释放内存,我不想要模态“窗口”,因为它似乎不是最佳的。我有一个自定义 UI,因此不需要选项卡栏控制器。


您可以用简单的代码来完成。但是您无法释放视图控制器,因为它需要处理用户交互,例如按钮点击事件等。将视图添加到窗口只会保留视图实例。如果释放视图控制器实例,可能会出现访问错误或无法识别的选择器错误。

所以让你的主要代码是

if(vc1==nil)
  vc1 = new viewC1();
window.addSubView(vc1.view);
window.MakeKeyAndVisible ();

你的开关代码将是

if(vc2==nil)
   vc2 = new viewC2();
if(vc1.view.superview!=nil){
   vc1.view.removefromSuperView();
   window.addsubview(vc2.view);
} else {
   vc2.view.removeFromSuperView();
   window.addsubview(vc1.view);
}

现在在 dealloc 方法中添加

vc1.release();
vc2.release();

就是这样...希望这有帮助... 我只是按照你的语法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在没有 UI 导航器控件的 uiviewcontroller 之间切换 的相关文章

随机推荐