【发布时间】:2011-05-24 18:02:15
【问题描述】:
在我的具体示例中,我在选项卡栏控制器的选项卡 2 中有一个导航控制器,根导航控制器视图具有三个按钮: “最近的商店” - 这会推送包含最近商店的地图视图的视图,单击商店图钉将推送商店详细信息视图。 '所有商店' - 这会推送一个包含列出所有商店的表格视图的视图,单击一行将推送商店详细信息视图。 '商店搜索' - 这会推送一个包含文本框的视图,该文本框允许城镇/邮政编码搜索出现在表格视图中的最近商店,单击一行将推送商店详细信息视图。
我遇到的问题是应该如何实现商店详细信息视图,因为它将从多个父视图推送到。
我目前拥有每个父视图、最近的商店视图、所有商店视图、商店搜索视图,包含一个单独的商店详细信息视图控制器实例,该实例分配了内存并根据需要推送到视图控制器上。我担心的是,如果我通过这 3 个路径中的每一个访问商店详细信息视图,那么内存中将有 3 个商店详细信息副本,因为我不确定它们何时会自动发布。
我的想法是实现此功能的另一种方法是从具有三个按钮的主导航根控制器中创建一个商店详细信息视图控制器的实例。 从任何最近的商店,所有商店,商店搜索视图,如果需要访问商店详细信息视图,则当前视图从导航控制器中弹出,并且将运行根控制器中的方法来推送商店详细信息视图.这意味着在内存中只会有一个 store details view 的实例,因为每次访问都会重用它。
由于弹出和推送到商店详细信息视图不会动画,当用户单击后退按钮时可能会感到困惑,因为他们最终会出现在根视图控制器上,而不是之前的视图开。
这是实现这种视图结构的好方法吗?我不确定我是否了解 iPhone 是如何将视图保存在内存中的,以及沿着这条替代路线走到底是有益还是浪费时间。
感谢您的帮助。
【问题讨论】:
标签: iphone objective-c