我想以编程方式在2个UIViewController类之间切换,而不需要任何额外的UI控件,比如向应用程序添加UI的UITabBarController .
我的主要使用addSubView加载第一个视图控制器 .
vc1 = new viewc1();
window.AddSubview(vc1.View);
window.MakeKeyAndVisible ();
我可以使用PresentModalViewController从第一个加载我的第二个viewcontroller
vc2 = new viewc2();
PresentModalViewController(vc2, true);
但我需要来回切换,并释放旧的viewControllers以节省内存 . 做这个的最好方式是什么? DismissModalViewControllerAnimated(false); 在第二个视图控制器不释放内存,我不想要模态"windows",因为它似乎不是最佳 . 我有一个自定义UI,因此不需要tabbar控制器 .
2 回答
你可以用简单的代码完成 . 但是您无法释放视图控制器,因为它需要处理用户交互,例如按钮点击事件等 . 向窗口添加视图将仅保留视图实例 . 如果释放视图控制器实例,则可能会出现错误的访问错误或无法识别的选择器错误 .
所以让你的主要代码
你的开关代码将是
现在在dealloc方法中添加
多数民众赞成...希望这有帮助......我只是按照你的语法
你可以使用
UINavigationController
,你不需要它提供的额外UI . 你可以使用 .UINavigationBar
的Hidden
属性隐藏了该属性 . 要在视图之间切换,您只需使用PushViewController(controller, animated)
来推送新视图 . 如果要释放旧控制器,则可以使用以下命令设置UINavigationController
的.ViewControllers
属性:这将删除第一个控制器的引用,并使第二个控制器成为根 . (这也可以反过来!)