好吧,我的大脑现在被炸了,所以任何帮助都将不胜感激。
我的应用程序中有UIViewController
的多个子类。让我们称它们为CCD_ 2。
用户通过触摸每个视图上的按钮进行交互。
所以我的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
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上调用CCD_ 4以将我带到VC_C时,我希望它是VC_C的新实例而不是原始实例。
因此,我的问题是如何进行这项工作——我是否需要使用[self dismissModalViewControllerAnimated:NO];
来删除视图的旧实例。
任何帮助都将不胜感激,因为我已经搜索过了,但所有的教程和东西都使用导航栏来控制导航——由于应用程序的类型,我无法使用导航栏。任何在UIViewControllers的新实例之间正确移动的工作代码示例都将非常棒。
只需使用创建一个新实例
ViewController_C *newVC_C = [[ViewController_C alloc] init]
[self presentModalViewController:newVC_C animated:NO];
[newVC_C release];
我决定用一种不同的方式来做这件事,它非常适合我的需要。
我所做的是在xib中创建了一个基本的ViewController,在viewDidPear方法中,我根据全局NSNumber的值调用了其他ViewController(使用presentModalViewController)。
因此,当我转到任何其他视图控制器,而不是它们调用另一个视图控制器时,它们只需设置全局变量,指示要加载的视图,然后关闭当前视图(使用disseModalViewController)。
这样,viewControllers的每个实例都会关闭,内存也会释放。
我创建了一个示例项目并将其放在github上https://github.com/sregorcinimod/Open
只要看看下载,你就会在那里看到