2012-10-09 65 views
2

BUMP ..還沒有弄清楚,事物旋轉,但在視野之外。太奇怪了。 我可以提供更好的信息以獲得幫助嗎?Monotouch.Dialog IOS 6分割視圖旋轉問題

仍然有這個問題!它真的不好,我不能修復這個:(幫助請

BUMP ..請我在這裏dieing!有人有人!:)

所以,我使用Monotouch.Dialog,自IOS 6,我的SPLITVIEW控制器的旋轉行事怪異。

它實際上在旋轉,但我的細節視圖佔據了整個屏幕,而主視圖看起來好像它正在旋轉離開屏幕框架。也就是說,當它旋轉後,我可以在一秒鐘內看到主視圖,而細節視圖佔據整個屏幕。

我已經添加了必要的ShouldAutorotate函數並設置了自IOS6以來的GetSupportedInterfaceOrientations。就像我說的那樣,它旋轉了,但有些東西剛剛關閉。

我試過IOS 5模擬器,它的工作原理,所以它絕對是一個IOS 6的問題。

任何人都有一個想法,我應該在哪裏尋找問題?

編輯:我注意到,調試時它沒有進入我的主視圖和詳細視圖的ShouldAutorotate覆蓋,只在我的分割視圖控制器中進入。在iOS 5中它正確進入了ShouldAutorotateToInterfaceOrientation。

這是我在細節和主視圖使用代碼:

public override bool ShouldAutorotate() 
    { 
     return true; 
    } 
    [Obsolete] 
    public override bool ShouldAutorotateToInterfaceOrientation  (MonoTouch.UIKit.UIInterfaceOrientation toInterfaceOrientation) 
    { 
     return true; 
    } 

這裏是代碼,我在我的SplitViewController:

public override bool ShouldAutorotate() 
    { 
     return true; 
    } 

    [Obsolete] 
    public override bool ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation requested) 
    { 
     return requested == UIInterfaceOrientation.LandscapeRight || requested == UIInterfaceOrientation.LandscapeLeft; 
     //return requested == UIInterfaceOrientation.Portrait || requested == UIInterfaceOrientation.PortraitUpsideDown; 

    } 

    public override bool ShouldAutomaticallyForwardRotationMethods { 
     get { 
      return true; 
     } 
    } 

的人嗎?我需要這個工作,我無法解決這個問題!任何想法都會有所幫助!

+0

我注意到ShouldAutoRotate在我的分割視圖控制器上被調用,但不在細節和主視圖控制器上。我使用UITableViewController作爲詳細視圖,並使用UINavigationController作爲主視圖。 –

回答

0

如果沒有看到代碼本身,很難猜測出什麼問題。它可能在iOS 5.x上工作,因爲它將調用舊的shouldAutorotateToInterfaceOrientation:選擇器(並且因爲您的應用程序和/或MonoTouch.Dialog已經支持)。

這是在iOS6的過時 - 但它仍然會爲了向後兼容,除非你實現它的替代品被稱爲。注意複數形式替代,從蘋果的文檔:

覆蓋的supportedInterfaceOrientations和preferredInterfaceOrientationForPresentation方法,而不是)

的棄用通知並不意味着iOS6的不會與舊的API工作。這是剩餘的一些新的,更好的API被添加,並且在未來的某些iOS版本中刪除舊的API(清除迄今爲止非常罕見)。注:我鼓勵您停止使用您不支持的iOS版本中的舊API(例如iOS 4.0中不贊成使用的應用程序僅適用於支持5.0及更高版本的應用程序)。但是,重複代碼以支持5.0和6.0 最佳 API可能不是一個好主意,除非你從中獲得某些東西(例如新功能)。

大多數新的API,貶低舊的API,是爲了讓你的生活更輕鬆,而不是更難。

+0

好吧,它現在確實使它更難以嘻哈...但如果它不工作,旋轉,由於IOS6該設備甚至不會旋轉,它所做的。什麼可能導致它將詳細視圖旋轉出屏幕? –

+0

這是我用我的細節和母版視圖的內容:公共覆蓋無效DidRotate(UIInterfaceOrientation fromInterfaceOrientation) \t \t { \t \t \t base.DidRotate(fromInterfaceOrientation); \t \t \t this.TableView.SelectRow(lastSelectedQuestion,false,UITableViewScrollPosition.Middle); \t \t} \t \t \t 公共\t覆蓋布爾ShouldAutorotate() \t \t { \t \t \t返回真; \t \t} \t \t [作廢] \t \t公共覆蓋布爾ShouldAutorotateToInterfaceOrientation(MonoTouch.UIKit.UIInterfaceOrientation toInterfaceOrientation) \t \t { \t \t \t返回真; \t \t} –

+0

和此我有在分割視圖控制器:公共覆蓋BOOL ShouldAutorotate() \t \t { \t \t \t返回真; \t \t} \t \t [作廢] \t \t公共覆蓋布爾ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation請求) \t \t { \t \t \t返回請求== UIInterfaceOrientation.LandscapeRight ||請求== UIInterfaceOrientation.LandscapeLeft; \t \t \t //返回請求== UIInterfaceOrientation.Portrait ||請求== UIInterfaceOrientation。PortraitUpsideDown; \t \t \t \t \t} \t \t公共覆蓋布爾ShouldAutomaticallyForwardRotationMethods { \t \t \t獲得{ \t \t \t \t迴歸真實; \t \t \t} \t \t} –

0

另外不要忘記設置window.rootViewController(否則旋轉將無法在iPad上運行)。