2011-11-06 28 views
9

Tôi mới bắt đầu chơi với UISplitViewController - Tôi đã trộn một số mã từ các hướng dẫn khác nhau, nhưng tôi gặp khó khăn khi xem cách gửi dữ liệu từ Master đến Chi tiết. Tôi đang tạo một trình đọc RSS chỉ để minh họa cho bản thân cách nó hoạt động như thế nào. Tôi đã phân tích cú pháp một nguồn cấp dữ liệu RSS và điền vào MasterViewController với một UITableView, nhưng tôi bị mắc kẹt để tìm ra cách thực hiện một nhấp chuột vào hàng và tải bài viết tương ứng trong một UIWebView trong detailViewController. Mọi lời khuyên đều được đánh giá cao.Giao tiếp Master/Detail UISplitViewController

Trả lời

10

Cách tiếp cận tốt là sử dụng các đại biểu. Điều đó cho phép một chế độ xem gọi lại do người khác cung cấp. Trong trường hợp này, khung nhìn chi tiết dựa trên master hiện có để nó gọi lại là tốt. Tôi sẽ tránh để họ trực tiếp tham khảo lẫn nhau và đọc trực tiếp dữ liệu của nhau.

What exactly does delegate do in xcode ios project?

Dưới đây là một hướng dẫn với UISplitViewController mà không chỉ là (đại biểu giữa thầy/chi tiết):

http://www.raywenderlich.com/1040/ipad-for-iphone-developers-101-uisplitview-tutorial

Cụ thể phần này:

Hooking Up The Left Với bên phải

Thời gian để chơi mai mối và móc hai mặt này lại với nhau.

Có nhiều chiến lược khác nhau về cách thức để thực hiện tốt nhất việc này. Trong mẫu ứng dụng Split View Application, chúng cung cấp cho bộ điều khiển xem bên trái một con trỏ tới bộ điều khiển xem bên phải, và bộ điều khiển bên trái đặt thuộc tính ở bên phải điều khiển khi một hàng được chọn. Bộ điều khiển chế độ xem bên phải ghi đè thuộc tính để cập nhật chế độ xem khi thuộc tính được cập nhật. Điều đó hoạt động tốt, nhưng chúng tôi sẽ thực hiện theo cách tiếp cận được đề xuất trong tham chiếu lớp UISplitViewController tại đây - sử dụng đại biểu. Ý tưởng cơ bản là chúng ta sẽ định nghĩa một giao thức với phương thức đơn - “selectedBotChanged.” Phía bên tay phải của chúng ta sẽ thực hiện phương thức này, và phía bên trái của chúng ta sẽ chấp nhận một người đại diện là của ai đó muốn biết về điều này .

Một cách tiếp cận khác sẽ là có một mô hình được chia sẻ - giống như một singleton có thông báo kích hoạt các chế độ xem khác nhau dựa trên dữ liệu từ thông báo hoặc truy vấn mô hình. Điều này đôi khi tốt hơn trong một ứng dụng có nhiều chế độ xem không dựa vào nhau và chỉ bong bóng dữ liệu theo nhiều cách khác nhau (không phải là trường hợp ở đây - chế độ xem chi tiết dựa trên bản gốc hiện có để người được ủy quyền là tốt).

+0

Chỉ trả lời chi tiết hơn trong câu hỏi này. http://stackoverflow.com/questions/33721081/swift-how-to-detect-if-uisplitviewcontroller-is-currently-showing-1-or-2-contro/38547858#38547858 –

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