2011-08-23 29 views
9

必須有一些基本的東西我在這裏丟失。我有一個UIScrollView打開,它由客戶UIScrollViewController(稱爲DataController)控制。在某一個時間點,來自用戶的輸入是必要的,所以我打開從DataController類模態的UIViewController:關閉UIScrollView底層的模態視圖更改

ElementSelectController *viewController = [[ElementSelectController alloc] initWithNibName:@"ElementSelectController" bundle:nil]; 
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
viewController.theDelegate = self; 
[self presentModalViewController:viewController animated:YES]; 

一旦用戶準備好與模態的視圖,它再次被駁回。這也發生從DataController:

[self dismissModalViewControllerAnimated:YES]; 

這一切工作正常。 但是當模態視圖消失時,事實證明底層的UIScrollView被調整爲全屏,並滾動到位置(0,0)。即使有一個簡單的模態視圖,這種情況也是如此,除了被解僱外,其他任何事情都不做任何事情。 顯然,我希望UIScrollView保持與模態視圖出現前相同的狀態和大小。

任何想法我做錯了什麼?

我檢查時的UIScrollView框設置堆棧跟蹤(通過在SETFRAME一個斷點:一個自定義的UIScrollView的),並且它似乎它是從稱爲:

-[UITransitionView transition:fromView:toView:] 

其通過稱爲,通過dismissModalViewControllerAnimated調用。

+0

我不知道爲什麼會發生這種情況,但如果模式消失後,您可以隨時存儲UIScrollView contentOffset並重置。 – NWCoder

+0

請從viewwillappear顯示一些您的代碼... –

+0

謝謝。這就是我現在做的解決方法。我保存UIScrollView的幀和contentOffset,並在解除呼叫後立即重置它們。這似乎工作,但它感覺像一個黑客。我一定會想知道處理這個問題的正常方法是什麼。 – fishinear

回答

1
-[UITransitionView transition:fromView:toView:] 

對於從模態轉換回您的視圖是非常正常的。這是動畫等,如果你認爲這可能會有所作爲,那麼試試你的動畫模式。

看看你viewWillAppearWillDisappearDidAppear... 甚至LoadUnload如果合適的話,雖然不太可能這些被稱爲你有沒有在模態測試瑣碎。 嘗試在這些方法中放置一些日誌記錄來查看哪些被調用。

你還說這些方法中沒有自定義代碼,或者你的控制器根本不覆蓋它們?可以有所作爲。