2011-12-03 55 views
24

Trong iOS 5 SDK, có hai phương thức của UIViewController, presentModalViewController: animated: và presentViewController: animated: completion :.Sự khác nhau giữa presentModalViewController và presentViewController?

Sự khác nhau giữa hai phương pháp này là gì?

Tài liệu cho biết: Phương thức presentViewController: animated: completion: là cách ưa thích để trình bày chế độ xem phương thức như iOS 5.0.

Nếu tôi sử dụng một bản trình bàyModalViewController: hoạt ảnh trong iOS 5, nó có gây ra lỗi không?

Chúng có giống nhau về mặt chức năng không?

Trả lời

24

Họ dường như làm điều tương tự như quả táo documentation chỉ ra, tính đến iOS 5.0 presentViewController là cách ưa thích để trình bày quan điểm điều khiển, có vẻ như presentViewController bây giờ cho phép bạn có một bộ xử lý hoàn thành, trong khi đó trước khi bạn không có mà .

Và không có cũ hơn presentModalViewController nên được sử dụng tốt trên iOS 5.0, nếu nó gây ra lỗi sẽ là một vấn đề cho tất cả các ứng dụng cũ hơn và sẽ không tương thích ngược. Hơn nữa có vẻ như bây giờ với presentViewController bạn có thể nhận được nhiều thông tin hơn về hệ thống phân cấp viewController khi chúng tôi có các thuộc tính presentingViewController, presentedViewController.

+0

Cảm ơn! Có vẻ như nếu tôi nhắm mục tiêu iOS 5, tôi nên luôn sử dụng presentViewController. – YuAo

+0

Yea nếu bạn chỉ có ứng dụng iOS 5 – Daniel

13

Một lưu ý quan trọng là presentModalViewController sẽ hết hạn vào tương lai, như đã đề cập trong UIViewController.h của khuôn khổ UIKit (Xcode phiên bản 4.3.1):

// Display another view controller as a modal child. Uses a vertical sheet transition if animated.This method has been replaced by presentViewController:animated:completion: 
// It will be DEPRECATED, plan accordingly. 
- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated; 

// Dismiss the current modal child. Uses a vertical sheet transition if animated. This method has been replaced by dismissViewControllerAnimated:completion: 
// It will be DEPRECATED, plan accordingly. 
- (void)dismissModalViewControllerAnimated:(BOOL)animated; 
Các vấn đề liên quan