2012-02-21 38 views
6

Tôi nghiện sử dụng TableViewController trong kịch bản có lớp trực tiếp thừa hưởng từ UITableViewController và các chức năng như:Làm thế nào để tương tác với UITableView trong UIViewController?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *) 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

đang có theo mặc định và bạn chỉ cần có để thực hiện chúng. Nhưng bây giờ tôi đang sử dụng một ViewController (kế thừa từ UIViewController) trong storyboard và sử dụng một điều khiển UITableView từ thư viện đối tượng vào bộ điều khiển xem bằng cách kéo và thả. Rõ ràng là lớp tôi sẽ đính kèm vào ViewController cốt truyện của tôi sẽ được thừa hưởng từ UIViewController. Bây giờ làm thế nào để tôi tương tác với các ô bảng trong điều khiển UITableView trong bộ điều khiển xem của tôi. Bạn muốn triển khai các hàm hàng tương tự ở trên.

Trả lời

12

Thực hiện các giao thức UITableViewDataSourceUITableViewDelegate trong trình điều khiển chế độ xem của bạn .h tệp.

Có lối thoát cho UITableView.

Trong viewDidLoad, đặt nguồn dữ liệu của tableView và ủy quyền thành self vì bộ điều khiển chế độ xem triển khai giao thức.

Sau đó, viết phương thức cellForRowAtIndexPath. Nó sẽ được gọi.

+0

cảm ơn, nó đã hoạt động – Firdous

+9

Đặt nguồn dữ liệu và ủy quyền cho 'tự' trong ViewController' viewDidLoad' không phải là cách sạch nhất nếu bạn đang sử dụng bảng phân cảnh như người hỏi câu hỏi. Nếu bạn chọn 'UITableView' trên bảng phân cảnh và đi đến thanh tra kết nối, bạn sẽ thấy các cửa hàng chưa được kết nối cho' dataSource' và 'delegate'. Ctrl-click và kéo từ chúng vào vòng tròn màu vàng ở bên trái bên dưới bộ điều khiển xem của bạn để đặt ViewController làm dataSource và ủy quyền cho khung nhìn bảng. –

2

Bạn phải gán giao thức UITableViewDelegate và UITableViewDatasource cho bảng của bạn và triển khai nó. Các phương thức trong câu hỏi của bạn là các phương thức từ các giao thức này và chúng xuất hiện tự động khi bạn sử dụng UITableViewController.

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