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

我的应用程序非常密集地使用TTNavigator url方案,看起来TTNavigator就像拥有窗口的排他性控制。所以我没有两个视图控制器可以玩。
有没有什么方法可以将TTNavigator添加到视图控制器中,同时在另一个视图控制器上创建菜单?
发布于 2012-04-16 01:59:44
通过使用Tom Adriaenssen出色的ViewDeck实现,您可以拥有一个像路径一样滑动的左视图控制器:
在你的应用中,当设置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框架作斗争,所以请确保它不会反击。
发布于 2012-03-09 00:26:51
好了,我找到了一个解决方案:
SMMenu * smmenu = [[SMMenu alloc] init];
[self.window addSubview: smmenu.view];
[self.window addSubview: navigator.window];
[self.window makeKeyAndVisible];只需在按下如下按钮时移动到左侧navigator.window:[navigator.window setLeft:250],它将在后面显示视图,所有导航器都将在前视图中工作。
井。不幸的是,现在我已经失去了键盘视图..:)
https://stackoverflow.com/questions/9584299
复制相似问题