18

Tài liệu của Apple cho UIActionSheet khiến tôi bối rối. Trước hết, trong Nguyên tắc Giao diện Con người của iPad, nó cho biết:Sử dụng UIActionSheet trên iPad

Để tìm hiểu thêm về cách sử dụng trang tính trong mã của bạn, hãy xem “Sử dụng cửa sổ bật lên để hiển thị nội dung” trong Hướng dẫn lập trình iPad.

Nhưng sau đó trong phần "Sử dụng cửa sổ bật lên để hiển thị nội dung", nó không đề cập đến Trang tính hành động! Am i thiếu cái gì ở đây?

http://developer.apple.com/library/ios/#documentation/General/Conceptual/iPadHIG/UIElements/UIElements.html#//apple_ref/doc/uid/TP40009446-CH6-SW9

câu hỏi chính của tôi là thế này: trên iPad, sự khác biệt giữa một UIPopoverController và UIActionSheet là gì? Nếu một UIActionSheet tự động xuất hiện bên trong UIPopoverController, thì có lý do gì để sử dụng UIActionSheet không? Tôi thấy cách phân bổ và tạo nút tự động của đại biểu giúp cho ít dòng mã hơn, nhưng từ POV khả dụng, có sự khác biệt nào không?

Ngoài ra, hiển thị actionSheet của tôi với hoạt ảnh không hoạt động. Nó trông và hoạt động giống như một actionSheet được trình bày không có hoạt hình (giống như khi tôi sử dụng UIPopoverController và không có actionSheet nào cả). Đây là mã của tôi:

UIActionSheet *action = [[UIActionSheet alloc] initWithTitle:@"An unsaved property already exists. You must assign a name to this property before creating a new property. Would you like to:" 
    delegate:self 
    cancelButtonTitle:nil 
    destructiveButtonTitle:@"Overwrite" 
    otherButtonTitles:@"Open unsaved property", nil]; 

[action showFromRect:CGRectMake(0, 0, 200, 200) inView:self.mainSplitViewController.view animated:NO]; 

Làm cách nào để có một actionSheet trông giống như action actionSheet trong tài liệu của Apple (từ ứng dụng bản đồ, nơi bạn thêm vị trí vào liên hệ)?

Tôi có thể kết thúc bằng cách sử dụng cảnh báo cho điều này chứ không phải là cửa sổ bật lên hoặc trang tính hành động nhưng sẽ hữu ích khi hiểu điều này.

Cảm ơn!

Trả lời

22

Trước hết, UIActionSheet đã tồn tại trước UIPopoverControllerUIPopoverController không khả dụng trên iPhone, vì vậy nó hữu ích cho khả năng tương thích ngược và ứng dụng toàn cầu.

Ngoài ra, UIActionSheet không nhất thiết được trình bày trong cửa sổ bật lên, cụ thể, nếu bạn hiển thị nó từ một số UIBarButtonItem hoặc UIToolbar đã nằm trong cửa sổ bật lên. Sau đó nó được trình bày theo cách tương tự như trên iPhone (trượt từ dưới cùng của bộ điều khiển xem). Theo HIG, bạn không được hiển thị nhiều popovers cùng một lúc (một lần tôi đã từ chối ứng dụng), vì vậy trong trường hợp bộ điều khiển xem có thể nằm trong cửa sổ bật lên (như trong ứng dụng chế độ xem chia tách chuẩn), bạn có thể muốn sử dụng các trang tính hành động, nếu có thể. Tất nhiên có rất nhiều trường hợp bạn không thể thay thế một popover bằng một action sheet, vì một action sheet chỉ hiển thị một danh sách các nút và một tiêu đề, trong khi một popover có thể hiển thị bất kỳ bộ điều khiển xem nào.

Tôi nghĩ rằng tham số animated chỉ có tác dụng khi một trang tính được trình bày theo cách "cổ điển" (như trên iPhone).

+2

+1 cho câu trả lời của bạn. Rất hữu dụng! Bạn nói rằng * Tất nhiên có rất nhiều trường hợp bạn không thể thay thế một popover bằng một action sheet, bởi vì một action panel chỉ hiển thị một danh sách các nút và một tiêu đề, trong khi một popover có thể hiển thị bất kỳ view controller nào. Vì vậy, không thể trình bày Bộ chọn ngày, Tôi có sai không? Cảm ơn bạn. –

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