【发布时间】:2014-02-02 17:35:59
【问题描述】:
这是我的问题。
我正在创建的应用具有非线性导航。
所以我正在实现自己的后退按钮并进行自己的导航。
但是,我想知道我应该如何呈现下一个视图。
如果我的导航是线性的,我可以这样做:
-(IBAction)btnBackPressed:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
但是这对我不起作用,因为按下返回不一定会让你回到之前的视图。
因此我正在考虑使用例如:
AddTaskViewController *add = [[AddTaskViewController alloc] init];
[self presentViewController:add animated:YES completion:nil];
我不使用 Storyboard 的原因是因为我所有的 UI 都是用代码以编程方式制作的。
对此我担心的是,我认为 presentViewController 只会将新视图推送到堆栈顶部。因此,如果用户向后、向前、向后按,他最终会耗尽内存。
鉴于我需要非线性导航并且我的所有 UI 都是在代码中创建的,我应该使用什么来呈现下一个视图而不浪费内存?
谢谢
【问题讨论】:
-
你知道 UINavigationController 有一个名为
setViewControllers:animated:的方法吗?您可以在堆栈中插入或删除视图控制器,从而创建非线性导航系统。如果这对你来说占用了太多内存,你可能需要做很多“自己动手”。 -
@architectpianist 你能举个例子来回答吗?插入新的和删除旧的的例子?我无法想象如何从给定视图访问导航控制器。
标签: ios objective-c