如何创建指向UITableView的指针?

问题描述:

对不起,noob问题,但如果我要创建一个UITableViewController,我可以通过声明创建的指针表:如何创建指向UITableView的指针?

UITableView *tableView = self.tableView; 

我会怎么做,如果我要创建一个TableView中一个UIViewController在视图控制器中创建的视图控制器中声明为数据源和委托?

您应该将IBOutlet添加到您的视图控制器并将其连接到故事板中。

@property (weak, nonatomic) IBOutlet UITableView *tableView; 

这有效地复制了由UITableViewController提供的标准tableView属性。

请注意,weak属性假定tableView是视图控制器view的子视图。如果不是,则tableView也应该作为故事板中的view IBOutlet连接。在这种情况下tableView成为view的别名。

没有必要为UITableViewController中的表格视图创建出口。它已有一个您可以访问的属性tableView。它碰巧指向与view属性相同的对象。

在参考其他答案时,请注意,您不能移动表格视图以成为view的子视图,因为它们是相同的。你将不得不使用超类UIViewController来做这样的设置。

这记录在UITableViewController documentation

+0

我不明白这一点“它恰好指向与视图属性相同的对象。” – Allen

+0

另外,我创建了一个带有tableview的ViewController,而不是UITableViewController,没有tableView可以访问。 – Allen

+0

您提问的句子意味着这两个属性指向相同的机器地址,即同一个对象。指针是相同的。你的问题清楚地问到关于表视图控制器而不是视图控制器。谢谢你浪费我的时间。 – Mundi

遵循这个步骤,请:

1)将tableViewController到故事板,将其放置在属于您的UIViewController视图控制器;

2)在您的班级的标题中添加协议。把它放在这样的接口线 - @interface YourViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>

3)添加属性到标题类的 - @property (strong, nonatomic) IBOutlet UITableView *tableView;

4)控制+在故事板拖动的tableView并将其连接到数据源和的tableView委托,并将其连接到财产IBOutlet UITableView *tableView;

5)添加单元格,为tableView重用标识符,以及类方法实现您的类。