कुछ बुनियादी होना चाहिए जो मैं यहां याद कर रहा हूं। मेरे पास एक 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];
एक बार जब उपयोगकर्ता मोडल दृश्य के साथ तैयार है, इसे फिर से खारिज कर दिया है। यह डेटाकंट्रोलर से भी होता है:
[self dismissModalViewControllerAnimated:YES];
यह सब ठीक काम करता है। लेकिन जब मोडल व्यू चला जाता है, तो यह पता चला है कि अंतर्निहित UIScrollView पूर्ण स्क्रीन में बदल दिया गया है, और स्थिति (0,0) पर स्क्रॉल किया गया है। यह मामला एक साधारण मोडल व्यू के साथ भी है जो कुछ और नहीं करता है लेकिन इसे खारिज कर दिया जाता है। जाहिर है, मैं चाहता हूं कि UIScrollView समान स्थिति और आकार में बने रहें क्योंकि यह मोडल व्यू आने से पहले था।
कोई विचार क्या मैं गलत कर रहा हूं?
मैं जब UIScrollView फ्रेम सेट कर दिया जाता स्टैक ट्रेस (setFrame में एक को तोड़ने-बिंदु के माध्यम से: एक कस्टम UIScrollView की) जाँच की, और ऐसा लगता है कि यह से कहा जाता है:
-[UITransitionView transition:fromView:toView:]
जो के माध्यम से कहा जाता है , dismalModalViewControllerAnimated कॉल के माध्यम से।
मुझे नहीं पता कि यह क्यों हो रहा है, लेकिन आप हमेशा UIScrollView सामग्री को स्टोर कर सकते हैं ऑफसेट और मोडल गायब होने के बाद रीसेट कर सकते हैं। – NWCoder
कृपया अपने कुछ कोड को viewwillappear से दिखाएं ... –
धन्यवाद। मैं अब काम के आसपास के रूप में करता हूं। मैं फ्रेम और सामग्री को सहेजता हूं UIScrollView की ऑफसेट, और इसे खारिज कॉल के तुरंत बाद रीसेट करें। ऐसा लगता है, लेकिन यह एक हैक की तरह लगता है। मैं निश्चित रूप से जानना चाहता हूं कि इसे संभालने का सामान्य तरीका क्या है। – fishinear