我使用three20一個應用程序,我想用這種菜單的正在使用的路徑和Facebook:路徑滑動菜單TTNavigator
我的應用程序是非常密集使用TTNavigator網址方案,它似乎是TTNavigator好像是將窗口的獨佔控制。所以我沒有兩個視圖控制器可以玩。
有什麼辦法,我可以添加到TTNavigator視圖控制器和其他創建我的菜單?
我使用three20一個應用程序,我想用這種菜單的正在使用的路徑和Facebook:路徑滑動菜單TTNavigator
我的應用程序是非常密集使用TTNavigator網址方案,它似乎是TTNavigator好像是將窗口的獨佔控制。所以我沒有兩個視圖控制器可以玩。
有什麼辦法,我可以添加到TTNavigator視圖控制器和其他創建我的菜單?
你可以有一個路徑樣利用湯姆Adriaenssen出色的觀景臺實現滑動左視圖控制器:
在你的應用程序時,設置navigator.window,不要傳遞一個窗口。通過自定義的UIViewController的UIView的(一個你將設置爲觀景臺「中央」視圖控制器:
navigator.window=(UIWindow*)myCentralViewController.view;
這會愚弄three20的TTNavigator以爲它已經成功地接管你的窗口,當事實上,它只是一個視圖但請注意,你可能需要繼承這個觀點並實現空的UIWindow的方法,如:
- (void)makeKeyAndVisible{}
..因爲three20的TTNavigator仍然認爲,這是你的主要的UIWindow並希望您的對象,以共同的UIWindow選擇作出迴應。
這是未知的領域,它肯定是一個位,可能有意想不到的後果黑客攻擊的。
您可能需要在「假窗口」框架上設置負y,以補償狀態欄。例如: -
[[MYFakeWindow alloc] initWithFrame:CGRectMake(0, -20, 320, 480)];
再次,要小心。我在一款應用程序中使用這種黑客行爲非常好,但是你仍然在與三維框架戰鬥,所以確保它不會反彈。
好吧,我已經找到了解決辦法:
SMMenu * smmenu = [[SMMenu alloc] init];
[self.window addSubview: smmenu.view];
[self.window addSubview: navigator.window];
[self.window makeKeyAndVisible];
只需要向左移動navigator.window
上的按鈕像這樣的新聞:[navigator.window setLeft:250]
,它會顯示在後面的觀點,和所有導航儀將在前視圖下工作。
嘛。不幸的是,我現在已經失去了鍵盤觀點.. :)
也許是因爲你感動的窗口('navigator.window')?通常,在iOS應用程序和IIRC中,您沒有多個窗口,但鍵盤視圖會對其將顯示的窗口進行一些假設。 – 2012-09-07 11:47:58