Iphone 理解UIViewController层次结构

Iphone 理解UIViewController层次结构,iphone,objective-c,uiviewcontroller,hierarchy,presentmodalviewcontroller,Iphone,Objective C,Uiviewcontroller,Hierarchy,Presentmodalviewcontroller,好的-我的大脑正在被炸,所以任何帮助都将不胜感激 我的应用程序中有多个子类UIViewController。让我们把它们叫做VC\u A、VC\u B、VC\u C、VC\u D 用户通过触摸每个视图上的按钮进行交互 因此,我的AppDelegate在VC_A中添加了: //Add the view controller's view to the window and display. [self.window addSubview:viewController.view]; [sel

好的-我的大脑正在被炸,所以任何帮助都将不胜感激

我的应用程序中有多个子类
UIViewController
。让我们把它们叫做
VC\u A、VC\u B、VC\u C、VC\u 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使用当前的ModalviewController加载VC_B:

    VC_B *tempView = [[VC_B alloc] initWithNibName:@"temploadingscreen" bundle:nil];
    [self presentModalViewController:tempView animated:NO];
    [tempView release];  
所以直到我得到一个

VC\u A
-VC_B
-VC_C
-风险投资
但是,当我在VC_D上调用
presentModalViewController
将我带到VC_C时,我希望它是VC_C的一个新实例,而不是原始实例

所以,我的问题是,你怎么做?我是否需要使用
[自我解释器Modalviewcontrolleranimated:NO]
删除视图的旧实例


任何帮助都将不胜感激,因为我已经搜索过了,但是所有的教程和东西都使用导航栏来控制导航,而且由于应用程序的类型,我不能使用导航栏。任何在UIViewController的新实例之间正确移动的工作代码示例都非常好。

只需使用

ViewController_C *newVC_C = [[ViewController_C alloc] init]
[self presentModalViewController:newVC_C animated:NO];
[newVC_C release];

我决定用一种完全适合我需要的方式来做这件事

我所做的是在xib中创建了基本ViewController,而在ViewDidAspect方法中,我根据全局NSNumber的值调用了其他ViewController(使用presentModalViewController)

因此,当我转到任何其他viewController而不是调用另一个viewController时,它们只需设置指示要加载哪个视图的全局变量,然后关闭当前视图(使用dismissModalViewController)

这样,ViewController的每个实例都将关闭并释放内存

我创建了一个示例项目,并将其放在github上


只要看看下载,你就会在那里看到它。您可以同时拥有同一类的多个实例。这样想吧。。。您的每个视图控制器都是NSObject的一个子类,但一次实例化的视图控制器远远不止一个。由于我需要循环很多次,因此我决定采用不同的方法-一旦我能够回答自己的问题(必须等待8小时),我将提供一个指向示例项目的链接来给出我的答案