【问题标题】:IPhone Navigation Controllers - Best practise for reusing viewsiPhone 导航控制器 - 重用视图的最佳实践
【发布时间】:2010-11-09 13:33:10
【问题描述】:

嗨 我在我的应用程序中经常使用导航控制器,但我的应用程序开始遭受视图一遍又一遍地调用相同视图并将它们推送到导航控制器堆栈而不是重用堆栈上的现有视图的问题。

例如,我有一个在我的应用程序的不同位置调用的地图视图。

我真的应该通过导航控制器堆栈找到我已经推送的地图视图并将其移动到堆栈的顶部。

相反,我创建了一个新的并将其推到顶部。

随着我的应用程序变得越来越复杂,我肯定会遇到内存问题,用户会厌倦点击返回按钮进入主菜单。

任何人都有在导航控制器堆栈中找到视图的好例子。

我该怎么做?

我需要在 App Delegate 中保留指向我的地图视图的指针吗?

如果有办法在堆栈中快速找到视图,或者我是否需要将索引/NSDictionary 保存到它们的位置。

我注意到现在编写 Facebook 应用程序的人也遇到了同样的问题。当通知进来时,他们打开应用程序并实例化通知视图并将其推送到堆栈上。一段时间后,您最终会关闭一大堆旧通知窗口以返回主菜单。 干杯

【问题讨论】:

标签: iphone uinavigationcontroller navigationcontroller


【解决方案1】:

如果您希望特定的视图控制器位于堆栈顶部,并且您已经将其推送到堆栈上,而不是创建一个,您可以使用以下方法。

- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated

如果您事先知道 viewController 将被推送到堆栈上,您可以使用以下函数一次推送它们,而不是一次又一次地推送它们。

- (void)setViewControllers:(NSArray *)viewControllers animated:(BOOL)animated

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多