我想以编程方式在 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(使用前将#替换为@)