首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >路径幻灯片菜单TTNavigator

路径幻灯片菜单TTNavigator
EN

Stack Overflow用户
提问于 2012-03-06 21:06:24
回答 2查看 906关注 0票数 2

我在一个应用程序上使用three20,我想使用Path和Facebook上使用的这种菜单:

我的应用程序非常密集地使用TTNavigator url方案,看起来TTNavigator就像拥有窗口的排他性控制。所以我没有两个视图控制器可以玩。

有没有什么方法可以将TTNavigator添加到视图控制器中,同时在另一个视图控制器上创建菜单?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-16 01:59:44

通过使用Tom Adriaenssen出色的ViewDeck实现,您可以拥有一个像路径一样滑动的左视图控制器:

ViewDeck on GitHub

在你的应用中,当设置navigator.window时,不要传递窗口。传递自定义UIViewController的UIView (您将在ViewDeck中将其设置为“中央”视图控制器:

navigator.window=(UIWindow*)myCentralViewController.view;

这会欺骗Thre20的TTNavigator,让他们认为它已经成功地接管了你的窗口,而实际上,它只是一个视图。但是请注意,您可能需要子类化该视图并实现空UIWindow的方法,例如:

- (void)makeKeyAndVisible{}

。。因为Thre20的TTNavigator仍然认为这是您的主UIWindow,并期望您的对象响应常见的UIWindow选择器。

这是一个未知的领域,它肯定是一种黑客攻击,可能会产生意想不到的后果。

您可能需要在“伪窗口”框架上设置负y,以补偿状态栏。例如:

[[MYFakeWindow alloc] initWithFrame:CGRectMake(0, -20, 320, 480)];

再说一次,要小心。我在一个应用程序中使用了这个黑客攻击,它的表现非常好,但您仍然在与three20框架作斗争,所以请确保它不会反击。

票数 0
EN

Stack Overflow用户

发布于 2012-03-09 00:26:51

好了,我找到了一个解决方案:

代码语言:javascript
复制
SMMenu * smmenu = [[SMMenu alloc] init];
[self.window addSubview: smmenu.view];
[self.window addSubview: navigator.window];
[self.window makeKeyAndVisible];

只需在按下如下按钮时移动到左侧navigator.window[navigator.window setLeft:250],它将在后面显示视图,所有导航器都将在前视图中工作。

井。不幸的是,现在我已经失去了键盘视图..:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9584299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档