必須有一些基本的東西我在這裏丟失。我有一個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調用。
我不知道爲什麼會發生這種情況,但如果模式消失後,您可以隨時存儲UIScrollView contentOffset並重置。 – NWCoder
請從viewwillappear顯示一些您的代碼... –
謝謝。這就是我現在做的解決方法。我保存UIScrollView的幀和contentOffset,並在解除呼叫後立即重置它們。這似乎工作,但它感覺像一個黑客。我一定會想知道處理這個問題的正常方法是什麼。 – fishinear