2012-07-30 32 views
5

Tôi đang cố tạo khoảng cách tùy chỉnh sao cho trình điều khiển chế độ xem đích trượt xuống từ trên cùng.Ẩn bộ điều khiển chế độ xem nguồn trong khoảng cách tùy chỉnh

Tôi đã viết mã của mình theo ví dụ từ the documentation.

Vấn đề là khi segue được thực thi, bộ điều khiển chế độ xem nguồn chuyển sang màu đen và sau đó hoạt ảnh sẽ xuất hiện. Làm cách nào để ngăn bộ điều khiển chế độ xem nguồn chuyển sang màu đen?

(Tôi đã cố gắng thực hiện các giải pháp được trình bày trong this answer nhưng màn hình hoặc đi đen sau khi chuyển đổi, hoặc trở lại với bộ điều khiển xem nguồn.)

Dưới đây là mã của tôi:

-(void)perform{ 

    UIViewController *splashScreen = self.sourceViewController; 
    UIViewController *mainScreen = self.destinationViewController; 

    //Place the destination VC above the visible area   
    mainScreen.view.center = CGPointMake(mainScreen.view.center.x, 
              mainScreen.view.center.y-600); 

    //Animation to move the VC down into the visible area 
    [UIView animateWithDuration:1 
        animations:^{ 
         mainScreen.view.center = CGPointMake(mainScreen.view.center.x, [[UIScreen mainScreen] bounds].size.height/2); 
        } 
    ]; 

    [splashScreen presentModalViewController:mainScreen animated:NO]; 
} 
+0

Giải pháp cực kỳ đơn giản. Bạn phải hoàn thành hoạt ảnh TRƯỚC KHI trình bày bộ điều khiển chế độ xem mới. Không còn gì nữa. – Fattie

Trả lời

3

Lý do bộ điều khiển xem nguồn của bạn dường như bị ẩn là bộ điều khiển chế độ xem đích được hiển thị ngay lập tức.

Khi bạn đang viết phân đoạn tùy chỉnh, bạn không có cả hai chế độ xem có sẵn cùng một lúc. Bạn có thể hoặc là

  • push view controller, thêm quan điểm nguồn tới bộ điều khiển xem đích và động
  • thêm quan điểm đích để bộ điều khiển xem nguồn và animate, sau đó đẩy view controller
  • đẩy đến một trong -bộ điều khiển xem giữa, thêm cả hai chế độ xem, hoạt ảnh, đẩy tới bộ điều khiển chế độ xem đích.

Trong tất cả các trường hợp trên, ở đây tôi nói bộ điều khiển chế độ xem đẩy bạn có thể hiển thị bộ điều khiển chế độ xem một cách bình thường. Trong thực tế, có thể phù hợp hơn với giải pháp điều khiển xem ở giữa.

+0

Tôi đã thử tùy chọn thứ hai mà bạn đề cập và nó hoạt động tốt. Đây là mã: https://gist.github.com/3206340 Nhưng bạn chọn ba tùy chọn nào hiệu quả nhất? – Eric

+0

Không có nhiều khác biệt về hiệu quả giữa chúng. Bạn nên chọn người cảm thấy sạch sẽ, dễ hiểu nhất và duy trì cho bạn. Đối với mã sản xuất, cá nhân tôi sẽ chọn tùy chọn thứ ba vì nó sẽ không gây rối với hệ thống phân cấp khung nhìn của nguồn hoặc đích trong quá trình hoạt ảnh. Nhưng đó là một vấn đề của hương vị. –

+0

@ DavidRönnqvist Tôi đang thử một phân đoạn pop hơn là một segue đẩy, nhưng tôi chủ yếu là sau tùy chọn 1, và xem nguồn của tôi không hoạt hình. Bạn có thể xem mã trong [câu hỏi của tôi] (http://stackoverflow.com/questions/13036014/view-transition-doesnt-animate-during-custom-pop-segue) không? – glorifiedHacker

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