2015-02-06 126 views
0

我正在嘗試創建一個動作,當我打開設備的屏幕。如何在iOS中旋轉屏幕時執行某些操作?

在蘋果documentation我已閱讀,你必須使用這個方法:

override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) { 
     println("I rotate.") 
     self.tabBar.frame = CGRectMake(0, 80, self.view.bounds.size.width, self.view.bounds.size.height); 
    } 

但是,當我打開屏幕在日誌中不打印「我轉動。」

編輯:

這些項目的設置: enter image description here

+0

相關文檔說該方法在iOS8中已棄用,但您可能需要查看iOS7 +中的方向支持如何工作,因爲該方法不是支持多個方向的「新」過程的一部分。 – holex 2015-02-06 16:48:10

回答

0

從文檔,你也應該調用超:

此方法的實現必須在執行過程中的某個時刻調用super。

這應該不會導致您所看到的問題。仔細檢查你的目標是否允許旋轉。去你的項目,選擇目標,並在一般情況下確保你有其他方向檢查。如果您只檢查了一個方向,則可以旋轉設備,但不會改變方向。

+0

您好,感謝您的回覆。我編輯了項目設置。 – Stephany 2015-02-06 16:35:54

1

willRotateToInterfaceOrientation函數在iOS 8中已棄用,如Apple文檔here中所示。請參閱StackOverflow上的討論here

0

這種方法在哪裏?只有在UIViewController的子類中才會被調用。

編輯:看起來willRotateToInterfaceOrientation沒有在UITabBarController子類(這似乎是你使用的)在iOS 8中調用,但它在iOS 7中調用。即使該方法已被棄用,它仍然在iOS 8中調用UIViewController的直接子類。但是,對於iOS 8及更高版本,最好使用新的viewWillTransitionToSize:withTransitionCoordinator: