2013-11-03 10 views
5

Tôi đang làm cấu trúc bộ điều khiển xem (VC) sau.UIPageViewController trên UINavigationController không chuyển tiếp điều khiển xem con của nó kể từ khi thay đổi hướng

[UINavigationViewController] -> [UIPageViewController] -> [UIViewControllers]

sau đó, VC này nên hỗ trợ chân dung và định hướng phong cảnh.

Sự cố tôi gặp phải khi thay đổi hướng sang bất kỳ phía nào.

enter image description here

bạn có thể thấy sự cố. enter image description here

khu vực đỏ là màu nền của con VC trên UIPageViewController.
khu vực màu xanh là màu nền của UIPageViewController.

Tôi đoán VC con không được UIPageViewController chuyển tiếp. Tôi đã tìm ra nó trong một thời gian dài. Cuối cùng tôi đã kết thúc việc tìm kiếm một công việc xung quanh để thêm chức năng ghi đè sau đây vào tuỳ chỉnh UIPageViewController.

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
    [self setViewControllers:self.viewControllers 
        direction:UIPageViewControllerNavigationDirectionForward 
        animated:NO 
        completion:NULL]; 
} 

Mặc dù di chuyển chế độ xem xuống hướng xuống được hiển thị ngay sau khi xoay hoàn tất. Mã này giải quyết được vấn đề.

anyway, Tôi thực sự muốn biết bất kỳ giải pháp tốt đẹp và tự nhiên nào.

CẬP NHẬT
Ứng dụng của tôi hoạt động tốt trên iOS6. nó có thể là lỗi iOS7?

+0

bạn đã tạo 2 xib khác nhau cho các hướng khác nhau? –

+0

Tôi gặp sự cố bố cục khi tôi sử dụng bộ điều khiển chế độ xem trang bên ngoài trình điều khiển chế độ xem gốc (như bạn đang làm). Những vấn đề đó biến mất khi tôi thêm bộ điều khiển xem trang vào bộ điều khiển chế độ xem gốc. Tôi đã sử dụng mã mẫu soạn sẵn từ mẫu Xcode ứng dụng dựa trên trang của Apple. – bilobatum

+0

@MirkoCatalano No. UIPageViewController tùy chỉnh được tạo lập trình, nhưng UINavigationController là rootViewController của ứng dụng. Tôi sử dụng bảng phân cảnh để xây dựng giao diện người dùng. Lý do mà tôi không sử dụng bảng phân cảnh cho UIPageViewController là tương tác với một nút trên UITableViewCell tùy chỉnh. Tôi không sử dụng bảng phân cảnh để tạo nút vì nút được tạo động trên thời gian chạy. –

Trả lời

10

Tôi đã giải quyết vấn đề này để đặt dòng mã SINGLE sau trong [viewDidLoaded] của UIPageViewController tùy chỉnh.

self.automaticallyAdjustsScrollViewInsets = NO; 

Tôi cho rằng UIPageViewController có chế độ xem cuộn và nếu được nhúng trong UINavigationController, nó sẽ nằm không đúng kể từ khi thay đổi hướng.

May mắn thay, giải pháp của tôi được trang bị trong vấn đề.

@MirkoCatalano Cảm ơn bạn đã bình luận. đây là rất hữu ích để tìm ra giải pháp đúng.

+0

Cảm ơn. Bạn đã cứu tôi. Tôi đã bị mắc kẹt trong điều này trong ba ngày. Tôi ước tôi có thể cung cấp cho bạn nhiều upvotes hơn. – Greeso

+0

@Greeso Đó là niềm vui của tôi. Tôi cũng đã phải chịu đựng vấn đề đó trong thời gian bạn bỏ ra. Tôi thực sự hạnh phúc như bạn. –

Các vấn đề liên quan