好的 - 我的大脑正在被炒,所以任何帮助都会受到赞赏。
我的应用中有多个UIViewController
子类。我们称他们为VC_A, VC_B, VC_C, VC_D
。
用户通过触摸每个视图上的按钮进行交互。
所以我的AppDelegate在VC_A中添加:
//Add the view controller's view to the window and display.
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
VC_A然后使用presentModalViewController
:
VC_B *tempView = [[VC_B alloc] initWithNibName:@"temploadingscreen" bundle:nil];
[self presentModalViewController:tempView animated:NO];
[tempView release];
等等,直到我得到
的层次结构VC_A
- VC_B
- VC_C
- VC_D
但是当我在VC_D上调用presentModalViewController
将我带到VC_C时,我希望它是VC_C的新实例,而不是原始实例。
所以我的问题是如何进行此操作 - 我是否需要使用[self dismissModalViewControllerAnimated:NO];
删除视图的旧实例。
任何帮助都会感激不尽,因为我已经对此进行了搜索,但所有教程和内容都使用导航栏来控制导航 - 由于应用程序的类型,我无法使用。在UIViewControllers的新实例之间正确移动的任何工作代码示例都会很棒。
答案 0 :(得分:3)
使用
创建一个新实例ViewController_C *newVC_C = [[ViewController_C alloc] init]
[self presentModalViewController:newVC_C animated:NO];
[newVC_C release];
答案 1 :(得分:0)
我决定以不同的方式做到这一点,完全符合我的需要。
我所做的是在xib和viewDidAppear方法中创建了基本的ViewController,并根据全局NSNumber的值调用了其他viewControllers(使用presentModalViewController)。
因此,当我去任何其他视图控制器而不是它们调用另一个viewController时,他们只需设置全局变量来指示要加载哪个视图,然后关闭当前视图(使用dismissModalViewController)。
这样就可以关闭viewControllers的每个实例并释放内存。
我创建了一个示例项目并将其放在github https://github.com/sregorcinimod/Open
上只需看一下你会在那里看到的下载