2012-02-22 19 views
7

Có thể nhanh chóng trình bày một UIView trong một UIPopoverController mà không cần phải có UIViewController quản lý UIView?Có thể trình bày UIView mà không có UIViewController trong UIPopoverController?

Hiện tại tôi có một "DelegateViewController" để chế độ xem của tôi được chuyển. Sau đó, tôi sử dụng bộ điều khiển đó để trình bày. Nhưng tôi tự hỏi nếu có một cách dễ dàng hơn?

Trả lời

13

Nếu bạn có UIView, thì bạn có thể dễ dàng tạo vùng đồng bằng UIViewController làm vùng chứa.

UIViewController* controller = [[[UIViewController alloc] init] autorelease]; 
controller.view = myView; 
+0

Đó là những gì tôi đang làm. – Krumelur

+0

câu trả lời hay .. :) –

0

Thường có ý nghĩa khi có một khung nhìn UIViewController vì bộ điều khiển xử lý tất cả tương tác và thiết lập chế độ xem. Mặc dù bạn có thể trong một số trường hợp đặt chế độ xem "trần truồng" trên màn hình UIPopoverController được thiết kế để hoạt động với UIViewController và mô hình ViewController được thiết lập và khuyến khích trong thế giới iOS, vì vậy ngay cả khi bạn nghĩ rằng bạn dường như không cần xem bộ điều khiển nó không phải là có hại để có một và bạn luôn có thể muốn mở rộng các chức năng hiện tại, phải không?

Xin lưu ý: Nếu bạn đang ở trên iOS 5.0, việc tạo chế độ xem trong Cửa sổ bật lên rất đơn giản và việc kéo và thả trình điều khiển chế độ xem cũng như gắn chúng lên bảng phân cảnh. Ví dụ: How to create Popovers with Xcode Storyboards

1

Có thể nhanh chóng đưa ra một UIView trong một UIPopoverController mà không cần một UIViewController quản lý UIView?

No. UIPopoverController quản lý bộ điều khiển chế độ xem chứ không phải chế độ xem. Khi bạn tạo một bộ điều khiển popover, bạn phải cung cấp bộ điều khiển xem sẽ quản lý nội dung. Điều đó không có nghĩa là bạn phải tạo một lớp con điều khiển xem đặc biệt ở mọi nơi mà bạn sử dụng một cửa sổ bật lên - như bendytree chỉ ra, bạn có thể sử dụng một UIViewController cũ đồng bằng nếu bạn muốn. Nhưng bạn không thể vượt qua UIPopoverController một cái nhìn - nó không có cách nào để chấp nhận nó, và sẽ không biết phải làm gì với nó nếu đã làm.