1

我想实现类似 facebook 导航菜单之类的东西,您可以在其中单击菜单按钮将当前视图滑到上方以陶醉下面的菜单。问题是如何让菜单始终作为底层视图存在。

菜单有一个 tableView 将突出显示您所在的当前视图或部分。目前我在每个视图上都有一个属性,菜单将被分配到,但我不确定如何为菜单设置单例 UIView . 换句话说,如果菜单不是单例,我可以这样做:

self.menu = [[[NSBundle mainBundle] loadNibNamed:@"menu" owner:self options:nil] objectAtIndex:0];

但在这种情况下,我正在为每个视图创建一个新菜单。我需要为每个视图分配相同的菜单。

建议?


那么创建一个将菜单视图作为属性的单例 NSObject 怎么样?

然后我可以从单例中获取这个视图并将其分配给每个视图的 self.menu 吗?

4

2 回答 2

2

我想您将拥有某种主视图控制器来处理所需的所有不同视图。

这个视图控制器可以有一个属性来存储你的“菜单视图”;当您为菜单中的项目创建新的视图控制器时,您会将对存储在主视图控制器中的“菜单视图”的引用传递给它。

这可以为您工作,而无需使用单例。

于 2012-10-10T16:37:10.767 回答
1

There're numerous open-source controllers that imitate that behaviour (e.g. this one, this or this) - you can check their implementation to get the idea of how they work (or use them in your project as they are)

Basically you need to create "main" view controller that handles both menu controller and your content controllers and navigation between them as @sergio said.

于 2012-10-10T16:39:18.987 回答