0

我知道它已经在互联网上分配了有关该信息的信息,但我是编程新手,有点困惑,我需要一点帮助...例如,我有 10 个视图控制器并用按钮在它之间切换,例如我用

    -(IBAction)goToSecondView:(id)sender {

 SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
 [self presentModalViewController:secondView animated:NO];
 [secondView release];
    }
   /* or */


-(IBAction)goToSecondView:(id)sender {

SecondViewController *secondView = [[SecondViewController alloc]
initWithNibName:@"SecondViewController" bundle:nil]; [self.view addSubview:secondView.view];
[secondView release];
}

并且在需要之后,如果我切换到删除第一个视图:

[self.view removeFromSuperview]; /* or */ [self dismissModalViewControllerAnimated:YES];

当我切换到第二个视图时,我不知道如何删除第一个视图,例如,当从FirstView转到SecondView第二个视图时,需要删除FirstView,然后从SecondView转到ThridViewSevenView示例,需要删除SecondView ...我该怎么做?你能做一个示例代码吗?我知道这很容易,但对我来说不是,我是编程新手

- - - - - - - - - - 更新 - - - - - - - - - - - - - - - ----------------------------------

我想在这里做类似>的东西<但我不明白,任何人都可以做一个示例代码吗?

非常感谢你

4

2 回答 2

0

您使用哪种方法(或者是否应该使用另一种方法)完全取决于您要实现的目标。

如果有一个视图列出了所有其他视图,而您只想在第一个视图和另一个视图之间来回切换,那么 presentModalViewController:otherView 方法就可以了。如果您将其他视图添加为第一个视图的子视图并完全覆盖它,那不是最好的处理方式。您应该将另一个视图添加为窗口的子视图(或其他视图的父视图),然后使用 [theView removeFromSuperview] 从窗口/父视图中删除该视图;

如果你有一个层次结构,即你可以深入几层,从第一个视图到第二个,从它到第三个,那么你应该考虑使用 UINavigationController。每次您想显示一个新视图时,您将其推送到 UINavigationController 的堆栈中,以返回一个您将其弹出的关卡(如果您使用带有后退按钮的默认导航栏,这将为您处理)。在这种情况下,您不必处理删除看不见的视图并在需要时重新创建它们,这一切都由 UINavigationController 负责。

于 2010-07-14T11:16:49.900 回答
0

还请记住,您不必总是“删除”视图。您可以改为隐藏它们。

[self.view setHidden:YES]

This will just make them not be drawn. That's handy, because removeFromSuperview will actually release the view from memory unless it's been retained, meaning you'll never get it back.

于 2010-07-14T11:41:26.490 回答