How to link Table dataSource and delegate outlets

2020-07-11 06:17发布

I'm new to Swift/iOS development.

I have a UITableView in my storyboard that I want to populate with some data. In my attempt to do so, I created a class that inherits from UITableViewController. The implementation is not yet complete, but my understanding is that by inheriting from this class I can provide an IBOutlet to both dataSource and delegate.

When I try to drag the outlet into the source file, I don't get the insertion point that I got when I tested this before. See image below: No insertion line! :(

What do I have to do to define this class as the handler for the UITableView?

3条回答
做自己的国王
2楼-- · 2020-07-11 06:59

In your storyboard, select the UITableView and change this to the name of your UITableViewController subclass. You then do not need to do any linking stuff.

enter image description here

查看更多
做个烂人
3楼-- · 2020-07-11 07:02

Set your viewController to inherit from UIViewController, not from UITableViewController (It seems like your IB is set up like that). Do not forget to set your class to ZeroconfTableController on the interface builder.

Than, you will be able to set the delegate and datasource. NOTE: the delegate and the datasource will not create IBOutlets.

Assign the delegate and the dataSource the following way: enter image description here

Also make sure, your viewController conforms to the protocols.

class ZeroconfTableController: UIViewController, UITableViewDataSource, UITableViewDelegate { 
查看更多
一纸荒年 Trace。
4楼-- · 2020-07-11 07:21

If you're using your own UITableView, inherit from UIViewController, not UITableViewController.

If however, you want to use a UITableViewController (which personally I don't use) in your storyboard, then do inherit from UITableViewController. In this case you won't have to wire up the UITableViewDataSource nor the UITableViewDelegate.

查看更多
登录 后发表回答