很抱歉这个菜鸟问题,但如果我要创建一个 UITableViewController,我可以通过声明创建一个指向表的指针:
UITableView *tableView = self.tableView;
如果我要创建一个 UIViewController 并在情节提要中创建一个 TableView 并将视图控制器声明为数据源和委托,我将如何做到这一点?
很抱歉这个菜鸟问题,但如果我要创建一个 UITableViewController,我可以通过声明创建一个指向表的指针:
UITableView *tableView = self.tableView;
如果我要创建一个 UIViewController 并在情节提要中创建一个 TableView 并将视图控制器声明为数据源和委托,我将如何做到这一点?
请按照以下步骤操作:
1)将tableViewController拖到storyboard中,放到属于你的UIViewController的视图控制器中;
2)在类的标题中添加协议。像这样把它放在接口行中 - @interface YourViewController : UIViewController <UITableViewDataSource,UITableViewDelegate>
3)将属性添加到类的标题 -@property (strong, nonatomic) IBOutlet UITableView *tableView;
4) 在storyboard上Control+拖动tableView,连接到DataSource和tableView delegate,连接到propertyIBOutlet UITableView *tableView;
5)添加单元格,重用标识符到tableView,以及类方法来实现你的类。
您应该将一个添加IBOutlet
到您的视图控制器并将其连接到您的故事板中。
@property (weak, nonatomic) IBOutlet UITableView *tableView;
这有效地复制了tableView
由 提供的标准属性UITableViewController
。
请注意,该weak
属性假设tableView
是视图控制器的子视图view
。如果不是,tableView
也应该作为view
情节提要中的 IBOutlet 连接。在这种情况下tableView
成为 的别名view
。
没有必要在UITableViewController
. 它已经有一个tableView
您可以访问的属性。它恰好指向与view
属性相同的对象。
参考另一个答案,请注意,您不能将表格视图移开以成为 的子视图view
,因为它们是相同的。您必须使用超类UIViewController
来进行这样的设置。
这记录在UITableViewController
文档中。