Phải có một số thứ cơ bản mà tôi thiếu ở đây. Tôi có một UIScrollView mở, được điều khiển bởi một khách hàng UIScrollViewController (gọi là DataController). Tại một thời điểm nào đó trong thời gian, đầu vào từ người sử dụng là cần thiết, vì vậy tôi mở một UIViewController modal từ DataController:Loại bỏ các thay đổi chế độ xem cơ bản UIScrollView
ElementSelectController *viewController = [[ElementSelectController alloc] initWithNibName:@"ElementSelectController" bundle:nil];
viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
viewController.theDelegate = self;
[self presentModalViewController:viewController animated:YES];
Khi người dùng đã sẵn sàng với quan điểm phương thức, nó được bác bỏ một lần nữa. Điều này cũng xảy ra từ DataController:
[self dismissModalViewControllerAnimated:YES];
Tất cả đều hoạt động tốt. Nhưng khi chế độ xem phương thức biến mất, nó chỉ ra rằng UIScrollView cơ bản được thay đổi kích thước thành toàn màn hình và được cuộn đến vị trí (0,0). Đây là trường hợp ngay cả với một chế độ xem đơn giản mà không làm bất cứ điều gì khác nhưng được miễn nhiệm. Rõ ràng, tôi muốn UIScrollView giữ nguyên trạng thái và kích thước giống như trước khi chế độ xem phương thức xuất hiện.
Bất kỳ ý tưởng nào tôi đang làm sai?
Tôi đã kiểm tra stack trace khi khung UIScrollView được thiết lập (thông qua một break-điểm trong setFrame: một tùy chỉnh UIScrollView), và có vẻ như nó được gọi là từ:
-[UITransitionView transition:fromView:toView:]
được gọi qua , thông qua từ cuộc gọi dismissModalViewControllerAnimated.
Tôi không biết tại sao điều đó xảy ra, nhưng bạn luôn có thể lưu trữ nội dung UIScrollViewOffOffset và đặt lại nếu sau khi phương thức biến mất. – NWCoder
Vui lòng hiển thị một số mã của bạn từ chế độ xem ... –
Cảm ơn. Đó là những gì tôi làm bây giờ như một công việc xung quanh. Tôi lưu khung và contentOffset của UIScrollView và đặt lại chúng ngay lập tức sau khi cuộc gọi bỏ qua. Điều đó dường như hoạt động, nhưng nó giống như một hack. Tôi chắc chắn muốn biết cách xử lý thông thường là gì. – fishinear