我的應用程序中有兩個UIViewController。我切換它們之間的視圖。一個是隱藏的另一個不是。一切都很好,除了方向問題。在這兩個的UIViewController 我重寫此方法UIView旋轉問題
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight)||
(interfaceOrientation == UIInterfaceOrientationLandscapeLeft));
//return YES;
}
,並設置方向爲橫向兩個XIB文件。
在*** Delegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
.......
viewController.view.hidden=TRUE;
[self.window addSubview:viewController.view];
[self.window addSubview:menuController.view];
.....
}
如果我添加viewController.view第一viewController.view是景觀位置,它可以旋轉到landscapeLeft或landscapeRight。但menuController.view仍然是縱向位置,視圖根本無法旋轉。
如果我先添加menuController.view的情況是相反的。
爲什麼發生這種情況?如何解決這個問題?我的應用程序快完成了。有沒有簡單的方法來解決這個問題,而不需要對我的代碼進行大的修改。
任何建議表示讚賞。非常感謝你!
致:Gonzalo Larralde感謝loooot。我很瞭解你在說什麼。在我的應用程序中沒有定義rootViewController。所以我嘗試了你的方式。 menuController被定義爲rootViewController,viewController被添加到menuController.view作爲子視圖。 menuController顯示爲我所期望的,但viewController.view只是變爲空白。或者我應該將viewController作爲一個實例添加到menuController類中,而不是將兩個控制器都添加到Delegate中。這樣我可能需要更改很多我不想要的代碼。 – Lynn
它應該如何工作? menuController和viewController應該同時顯示嗎?在這種情況下,指定哪些視圖是主視圖控制器,視圖控制器應始終保持可見。在這種情況下,我會在保留給主視圖控制器的menuView中定義一個視圖/滾動視圖,然後在menuController內部定義並實例化viewController並在其中添加它的視圖。 –
一次只能看到一個視圖。我在委託代碼didFinishLaunchingWithOptions:{....... viewController.view.hidden = TRUE; [self.window setRootViewController:menuController]; \t [self.window.rootViewController.view addSubview:viewController.view]; \t \t [self.window makeKeyAndVisible];} – Lynn