在ViewController中访问TableView

时间:2014-05-15 20:20:11

标签: ios objective-c uitableview

我有一个ViewController,里面有UITableView。当我在观看教程时,人们正在使用这样的东西:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return _Title.count;
}

如果没有首先使用它们创建类,我怎么能够生成存根。当我创建类时,我选择它作为UIViewController。我一直在玩试图自动生成存根,但都无济于事。

5 个答案:

答案 0 :(得分:1)

如果您按代码添加了tableview,则需要创建一个属性(weak),以便在将其添加到视图控制器的子视图后引用表视图。如果使用界面构建器添加它,则需要创建一个iboutlet属性,该属性允许您将表视图属性与表示视图控制器的xib / storyboard文件“绑定”。或者,您可以使用UITableViewController作为视图控制器的父类。此类已具有访问视图控制器中的表视图的属性。

答案 1 :(得分:1)

只需将UITableViewDataSource(很可能是UITableViewDelegate)添加到您的UIViewController声明中。例如:

// MyViewController.h

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
// ...
@end

之后,您的实现文件MyViewcontroller.m应该可以帮助您完成代码。

一个注意事项:不要忘记将自己设置为dataSource: _tableview.dataSource = self;

答案 2 :(得分:1)

告诉您的控制器您需要符合表视图协议,当您尝试输入时,它们将开始自动完成。您可以检查协议的文档以查找可用的方法。检查UITableView文档会告诉您相关的数据源和委托:

  

数据源必须采用UITableViewDataSource协议,委托必须采用UITableViewDelegate协议。

在您的标头文件中:

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

答案 3 :(得分:1)

你有几个选择。

您可以让您的课程继承自UITableViewController而不是UIViewController。这将为您提供tableView,因此您不需要制作一个。

或者...

您的UIViewController可以实施协议UITableViewDataSourceUITableViewDelegate。然后将表格视图的dataSourcedelegate属性设置为self(包含该表格的视图控制器)。

答案 4 :(得分:1)

- 首先,您可能需要在UIViewController头文件中添加UITableViewController的数据源和委托

@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

然后实现必需和可选的方法来填充_tableView中的数据。

Apple的TableView演示示例代码: https://developer.apple.com/library/ios/samplecode/TableViewSuite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007318