2014-03-24 22 views
0

我正在開發iOS框架。它包含一個視圖控制器,可以通過將使用我的框架的應用程序進行模態顯示。我無法訪問應用程序代碼,只是我的框架。我想在顯示視圖控制器時阻止自動旋轉。這可以做到嗎?我已經嘗試在我的VC中從shouldAutorotateToInterfaceOrientation:返回NO,但那不會被調用。從視圖控制器控制自動旋轉而不修改應用程序的其餘部分

+0

如果您使用的是iOS 6.0或更高版本,那麼它應該是shouldAutorotate功能,因爲shouldAutorotateToInterfaceOrientation:已被棄用, – Tcharni

回答

0

您可以將此代碼添加到您的AppDelegate。它將允許其他viewController響應自動調用。

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{ 
/* This is in order to allow views that do not support landscape mode to be able to load in 
*/ 
return UIInterfaceOrientationMaskAll; 
} 

此外,在iOS 6.0及更高版本中,shouldAutorotateToInterfaceOrientation:方法已被棄用。它可以通過以下方法來取代:

- (NSUInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskPortrait; 
} 
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ 
    return UIInterfaceOrientationPortrait; 
} 
- (BOOL) shouldAutorotate{ 
    return YES; 
} 
+0

的問題是我沒有訪問應用的代碼,包括應用代理。我在我的庫中提供了一個由應用程序使用的視圖控制器。我需要防止旋轉,而我的視圖控制器顯示。 – Macondo2Seattle

+0

我假設你知道誰有權訪問appDelegate,並要求他/她添加該代碼。然後你的正常自動旋轉功能,如上所述,應該工作。除非特定的方法是appDelegate,否則它將不起作用。我剛剛檢查了它。 – Tcharni