Ai đó có thể giải thích cho tôi những ưu điểm của UITableViewController trên UITableView. Nói chung tôi sử dụng bộ điều khiển nhưng xem bảng cơ bản có vẻ rất linh hoạt hơn.UITableView vs. UITableViewController
Trả lời
Tôi không nghĩ rằng bạn hiểu câu hỏi của riêng bạn.
UITableViewController là bộ điều khiển .
UITableView là chế độ xem .
Một không phải là tốt hơn so với loại kia, chúng là các đối tượng hoàn toàn khác nhau, được sử dụng cho những thứ hoàn toàn khác nhau.
Tôi sẽ dành một chút thời gian để tìm hiểu mô hình Mẫu-Chế độ xem-Điều khiển để thu hút sự chú ý của Cocoa và SDK iPhone.
Liên kết ở trên trả về "Không tìm thấy trang". Vì một lý do nào đó, ngay cả khi sửa lỗi link trả về "Không tìm thấy trang" khi được siêu liên kết (có lẽ Apple không cho phép liên kết vào trang web của nhà phát triển của họ).
Để tìm thông tin liên quan, hãy truy cập Kết nối nhà phát triển của Apple (http://developer.apple.com/index.html) và tìm kiếm trên "mẫu thiết kế kiểu xem-bộ điều khiển kiểu cacao".
Trong bảng kết quả, hãy chọn "Nguyên tắc cơ bản về ca cao: Mẫu thiết kế ca cao". Trên trang đó, cuộn xuống Mục lục ở bên trái cho đến khi bạn thấy mục "Mẫu thiết kế kiểu xem-bộ điều khiển". Chọn mục đó để đọc thêm chi tiết về mẫu thiết kế cụ thể đó.
Ý tưởng là ViewControllers giữ một cây các bản xem trước (và các bộ điều khiển xem phụ) và quản lý các sự kiện gửi đến/từ các bản xem trước của nó. Ví dụ: bạn có thể có chế độ xem giữ hình ảnh và chế độ xem đó sống trong bộ điều khiển chế độ xem xử lý các thay đổi hướng và cảnh báo bộ nhớ, v.v.
Tôi luôn sử dụng UITableView. Tôi không bao giờ sử dụng UITableViewController.
Sử dụng UITableViewController khó hiểu. Mỗi bộ điều khiển được cho là làm một màn hình ngoại trừ bộ điều khiển vùng chứa.
Vâng, UITableViewController là bộ điều khiển và phần lớn thời gian, một tableView đơn giản không phải là điều duy nhất ở đó.
Nếu bạn nhìn vào tài liệu: http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableViewController_Class/Reference/Reference.html
UITableViewController cung cấp rất ít giao diện mới so với UITableView. Không ai trong số đó là điều cần thiết.
– initWithStyle:
(duh?Tôi khởi tableView của tôi trong nib và tôi tùy chỉnh rất nhiều nào)
Lấy bảng Xem
tableView property
(bản gốc tableView)
Cấu hình Bảng Behavior
clearsSelectionOnViewWillAppear property
(được rồi, chỉ cần đặt một số mã trên ViewWillAppear)
Refreshing bàn xem
refreshControl property
[tableView tải lại]?
Vì vậy, bạn thấy đấy,
Vì vậy, trừ khi bạn muốn mã của bạn để trông gọn gàng (và không nhiều hơn nữa), không có lý do để sử dụng UITableViewController, mà tôi biết.
Chỉ UITableViewController mới có thể có nội dung tĩnh. https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW20 –
Ngoài ra, 'UITableViewController' có một số chức năng (ví dụ, làm nổi bật trên pop điều hướng) và thiết lập đã được thực hiện cho bạn, vì vậy bạn không phải phát minh lại bánh xe/tinh chỉnh bất cứ điều gì bố trí liên quan (đặc biệt là sau iOS 7), và nó hoạt động như mong đợi từ đầu. Tôi sẽ chỉ giới thiệu phương pháp của bạn nếu tôi cần chia sẻ màn hình với các bản xem trước khác so với bảng. –
Đây là một điều tôi thấy rất khó hiểu về Cocoa: Việc triển khai MVC của Apple (hoặc ít nhất là thuật ngữ họ sử dụng) là vấn đề. Trong Cocoa, hầu hết các khung nhìn đều thực sự hoạt động trong một số dung lượng như các bộ điều khiển trong khi mô hình MVC định nghĩa chúng (chỉ cần xem UITableView - tối đa các phương thức của nó thực sự là các phương thức điều khiển). Vì vậy, bạn có khái niệm bổ sung của Apple về một bộ điều khiển xem trên đầu trang của những gì đã đến một mức độ nào đó một bộ điều khiển. Thực tế là bạn thậm chí không cần phải sử dụng UITableViewController ở tất cả (ngay cả với ràng buộc dữ liệu) về cơ bản chứng minh rằng chế độ xem đang hoạt động như bộ điều khiển riêng của nó. Trong MVC, bạn không thể có một khung nhìn ràng buộc với một mô hình không có bộ điều khiển (đó là toàn bộ điểm của bộ điều khiển trong MVC).
Nó dường như các nhà phát triển của Apple, rằng một "quan điểm điều khiển" (ví dụ UITableViewController) thực sự là nhiều hơn một cấp cao hơn lớp helper/quản lý hơi quản lý lớp UITableView ở mức độ thấp hơn đồng thời bật một vài chính additional capabilities có liên quan nhiều hơn đến cách giao diện xem bảng với giao diện người dùng chung của ứng dụng. Ngoài ra, có vẻ như Apple dự định cho một bộ điều khiển xem thực sự có nhiều bộ điều khiển màn hình hơn, chỉ giới thiệu một bộ điều khiển xem cho mỗi màn hình (có lẽ bạn không thể lồng bộ điều khiển xem). Tôi duy trì rằng gọi khái niệm này một bộ điều khiển xem là một sự nhầm lẫn.
Vui lòng không ngần ngại khắc phục tôi về bất kỳ ai, tôi vẫn còn rất mới đối với Obj-C/Cocoa.
UITableView is a view and UITableViewController is a controller having UITableView as its root view.
So by using UITableViewController:
1. You have one root view that is UITableView itself. So takes less memory than UITableView with UIView as parent view in controller.
2. Provides you ready to use template, if you needed a controller and UITableView as its main display view.
3. Static table views are only valid when embedded in UITableViewController instances.
- 1. UITableViewController vs TableView
- 2. Xử lý rỗng UITableView trong UITableViewController
- 3. Thêm UIView vào sau UITableView trong mã UITableViewController
- 4. uitableviewcontroller chọn tiêu đề cho phần
- 5. Bàn phím UITableViewController và UITextField
- 6. Tải lại UITableViewController
- 7. Lề trên trên UITableViewController
- 8. Thiết lập một UIActivityIndicatorView cho UITableViewController lập trình
- 9. MBProgressHUD vô hiệu hóa tương tác với UITableViewController
- 10. MonoTouch - Phát hiện cuộn UITableView
- 11. Tai nạn UITableViewController trên trình mô phỏng iOS6
- 12. ghi đè trọng tảiXem trong lớp con UITableViewController
- 13. Trở thành đại diện UIScrollViewDelegate cho UITableView
- 14. iphone - truy cập UITableViewController từ UITableViewCell
- 15. Tự động tải XIB cho UITableViewController
- 16. Thêm thanh công cụ vào UITableViewController
- 17. Chức năng sao chép/dán trong UITableViewController
- 18. Sự khác biệt giữa UIViewController và UITableViewController
- 19. Tại sao chúng ta kiểm tra xem (cell == nil) trong UITableViewController?
- 20. Có gì với [UITableView reloadData]?
- 21. MonoTouch Cách triển khai RowSelected cho một UITableViewController với các ô tĩnh
- 22. performSegueWithIdentifier vs instantiateViewControllerWithIdentifier
- 23. UITableView scrollToRowAtIndexPath
- 24. UITableView DidSelectRowAtIndexPath?
- 25. Chỉ tải lại một UITableViewCell trên UITableview
- 26. Đặt tiêu đề UITableView từ NSFetchedResultsController
- 27. Tại sao numberOfSectionsInTableView được gọi hai lần trong UITableViewController?
- 28. NSRangeException trong UITableViewController với nội dung động/tĩnh hỗn hợp
- 29. Quan sát thuộc tính chỉnh sửa của UITableViewController
- 30. Không thuộc tính nội dung cho UITableView trong .xib
Tôi không chắc chắn OP có ý nghĩa hay không, nhưng tôi có câu hỏi tương tự với ý nghĩa: lợi ích/nhược điểm khi sử dụng UITableViewController vs. UIViewController có chứa UITableView ? – Bogatyr
Tôi đang bỏ phiếu cho câu trả lời của bạn vì đó là câu hỏi của anh ấy. Của tôi cũng thế. Ai đã bỏ phiếu này lên đến 14 ..? Chúng không hoàn toàn khác nhau - chúng có liên quan và do đó câu hỏi là hợp lệ. Khi nào bạn sẽ phân lớp UITableView? Một tableViewController được sử dụng để so sánh với một tableView là gì? Tôi nghĩ rằng tôi biết câu trả lời .. – badweasel
.. nhưng nếu tôi biết rằng tôi biết tôi sẽ không tìm kiếm nó. – badweasel