2

好的 - 我的大脑目前正在被烧毁,所以任何帮助将不胜感激。

我的应用程序中有多个子类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 然后通过使用加载 VC_B 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  

但是当我调用presentModalViewControllerVC_D 将我带到 VC_C 时,我希望它是 VC_C 的新实例,而不是原始实例。

所以我的问题是你如何去做这件事——我需要用它[self dismissModalViewControllerAnimated:NO];来删除视图的旧实例吗?

任何帮助将不胜感激,因为我已经对此进行了搜索,但是所有教程和东西都使用导航栏来控制导航-由于应用程序的类型,我不能使用导航栏。在 UIViewControllers 的新实例之间正确移动的任何工作代码示例都会很棒。

4

2 回答 2

3

只需创建一个新实例

ViewController_C *newVC_C = [[ViewController_C alloc] init]
[self presentModalViewController:newVC_C animated:NO];
[newVC_C release];
于 2011-06-20T22:43:09.850 回答
0

我决定以一种不同的方式来做这件事,它非常适合我需要的东西。

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

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

这样视图控制器的每个实例都会关闭并释放内存。

我创建了一个示例项目并将其放在 github https://github.com/sregorcinimod/Open

只需查看下载,您就会在那里看到

于 2011-06-21T08:30:29.887 回答