iphone - UINavigationController 建议

标签 iphone objective-c ios uinavigationcontroller

我读过 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];

通过使用此代码,我可以直接从第四个屏幕直接转到第一个屏幕。
如果我不使用导航 Controller ,那么也可以通过在第四个屏幕中制作 firstScreen 的对象,我可以在几行内实现相同的目标。那为什么要使用导航 Controller 呢?如果答案是内存优化,那么我们将自动释放 firstViewController 的对象,现在我们正在使用自动引用。

最佳答案

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

[self.navigationController popToRootViewController:YES];

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

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

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

关于iphone - UINavigationController 建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683474/

相关文章:

ios - Touch Down 不执行它应该执行的操作

ios - 设置 map 中心和缩放以适合所有坐标

iphone - 任何应用程序在 ios 5.1.1 和 xcode 4.3.3 上崩溃

iphone - 在 Cocoa Touch 中处理 UI 与行为问题的子类替代方法

ios - 将 UIView 添加回 View

ios - 在 NSMutableArray 中存储指向结构的指针

iphone - 在我的 UIImageView 的子类中没有调用 drawRect

ios - 改变 CCSprite 的亮度来模拟时间

iphone - 在 UILocalNotification 中创建周间隔以及周期

iphone - 带有多个参数的 objective-c switch case