1

UINavigationController当您想从 n 个屏幕跳到第一个屏幕时,我已经读过这是最好的选择。这样做需要以下代码:

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 的对象,我可以在几行内实现相同的目标。那为什么要使用导航控制器呢?如果答案是内存优化,那么我们将自动释放 firstViewController 的对象,现在我们正在使用自动引用。

4

3 回答 3

3

首先这是流行的错误方法。真正的一个是

[self.navigationController popToRootViewController:YES];

第二件事是,如果您在 4 个屏幕上,那么通过弹出到特定的视图控制器将不会弹出所有屏幕。这是内存问题。

另一个问题是,有时您不想丢失父屏幕数据。如果你对特定的viewcontroller使用pop的方法,数据会随着有数据的对象被释放而丢失。你做了一个新的。

关键是这取决于您的情况,适合您的场景。但正常和通常的方法是不要使用特定的弹出技术,因为它可能会导致问题

于 2012-05-21T10:27:30.013 回答
0

您可以使用

[self.navigationController popToViewController:(UIViewController *) animated:(BOOL)];

你只需要传递你想要直接移动的 ViewController 的对象......并且在视图控制器之间会自动弹出

希望这可以帮助你...

于 2012-05-21T11:16:26.037 回答
0

同意“萨德”

另一件事是,如果您有各种屏幕显示来自服务器的数据。在首先加载数据的同时渲染(用户交互)屏幕将非常困难。

与所有其他同级视图相同。

于 2012-05-21T11:48:50.313 回答