我读到当你想从n个屏幕跳到第一个屏幕时,UINavigationController是最好的选择。要做到这一点,需要以下代码:
NSMutableArray *array=[[NSMutableArray alloc]initWithArray:self.navigationController.viewController];
[array removeObjectAtIndex:1];
[array removeObjectAtIndex:1];
[array removeObjectAtIndex:1];
self.navigationController.ViewController=array;
[self.navigationController popViewController:YES];通过使用此代码,我可以直接从第四个屏幕直接转到第一个屏幕。如果我不使用导航控制器,那么通过在第四个屏幕中创建firstSCreen对象,我可以在几个lines.Then中实现相同的事情,为什么要使用导航控制器呢?如果答案是针对内存优化,那么我们将自动释放firstViewController的对象,现在我们将使用自动引用。
发布于 2012-05-21 18:27:30
首先,这是错误的pop方法。真正的答案是
[self.navigationController popToRootViewController:YES];第二件事是,如果你在4个屏幕上,那么通过弹出到一个特定的视图控制器将不会弹出所有屏幕。这是内存问题。
另一个问题是,有时你不想丢失父屏幕数据。如果对特定的视图控制器使用弹出方法,当有数据的对象被释放时,数据会丢失。你做了一个新的。
重点是,这取决于您的条件,在您的场景中什么是合适的。但通常的方法是不使用特定的弹出技术,因为它可能会导致问题
发布于 2012-05-21 19:16:26
您可以使用
[self.navigationController popToViewController:(UIViewController *) animated:(BOOL)];
你只需要传递你想要直接移动的ViewController对象...并且视图控制器之间会自动弹出
希望这能帮到你。
发布于 2012-05-21 19:48:50
同意“The Saad”
另一件事是,如果你有不同的屏幕,其中的数据来自服务器。在第一次加载数据时,第二次渲染(用户交互)屏幕将是相当困难的。
与所有其他同级视图相同。
https://stackoverflow.com/questions/10683474
复制相似问题