2014-07-11 90 views
2

當我使用IB中的Autolay ON打開設備時,不會調用以下方法。旋轉Autolay不起作用

willRotateToInterfaceOrientation:duration: 

首先,上述方法不自動佈局炒鍋?該方法在Autolayout關閉的情況下被調用。我試圖改變我的觀點旋轉的背景圖片,不知道如何實現與autolayout constaints ON?

我也嘗試使用Moin的程序,但我有一個巨大的視圖層次結構和方法從superview向前調用,並且我有很多其他方法中的其他代碼。因此,它並沒有幫助

didRotateFromInterfaceOrientation 
+2

您必須正確地做某件事,因爲運行的方法與自動佈局是打開還是關閉無關。我總是使用自動佈局,並且該方法適用於我。 – rdelmar

+0

@rdelmar:謝謝。所以當我旋轉設備時,這些方法會自動調用。只有當我將我的xib更改爲autlayout時,他們纔不會被調用。我在所有的xib文件上測試了這個,並且這些方法沒有被調用。那麼可能會出錯的是什麼?因爲它工作正常,沒有自動佈局。有什麼我失蹤? – Irfanlone

+0

對不起,我不知道。它一直爲我工作。我只是在一個帶xib定義的控制器的新應用程序上嘗試過它,並且調用了它。 – rdelmar

回答

1

簡短的回答: -willRotateToInterfaceOrientation:duration:工作與自動版式。

長答案: 假設您使用的是NIB,那麼多複合問題可能會出錯;截至UIViewController does not auto rotate

  • 建議@nybon你設置

    1. 你設置在IB您的自定義的UIViewController截至Loaded nib but the view outlet was not set - new to InterfaceBuilder
    2. 建議@JoshJustice你妥善處理自動旋轉:我編這個清單plist中的全局方向由@NateFlink推薦Handling autorotation for one view controller in iOS7
    3. 您的自定義UIViewController對-supportedInterfaceOrientations響應的值不正確嗎?看到preferredInterfaceOrientationForPresentation must return a supported interface orientation (iOS 6)
  • +0

    感謝您的回答。 你能提供更多關於你是什麼意思的「你是否在IB中設置了自定義的UIViewController」以及「你是否正確地處理自動旋轉? 正如我在我的問題中所說的,自動旋轉完美無缺地自動佈局。 – Irfanlone

    +0

    對於你的應用程序出錯的原因沒有人回答(*直到你發現它是*),但是你的問題有一個答案:*首先上述方法是否適用於自動佈局?* **是的,他們做**我已經格式化了我的回覆並添加了您應該查看的可能位置的鏈接。 – SwiftArchitect

    1

    -willRotateToInterfaceOrientation:duration:通過@AndrewHershberger建議的響應被調用根視圖控制器及其所有子viewcontrollers,並自動佈局的作品。如果你想讓這些方法在特定的視圖控制器上被調用,它必須是根視圖控制器的子視圖控制器。

    我花了一段時間才弄清楚,從根到最後一個viewcontroller的層次結構在某些時候是打破了。我只是不得不添加它作爲子視圖控制器。