【问题标题】:tableView not found on object of type在类型的对象上找不到 tableView
【发布时间】:2012-06-30 14:52:22
【问题描述】:

我有一个名为 FirstViewController 的类,它是 UIViewController 的子类,并且我在该类中有一个 UITableView。当按下一行时,我需要从此类转换到新的 UIViewController 子类(使用 segues)。

我已经使用代码将 FirstViewController 设置为 UITableViewDelegate 和 UITableViewDataSource -

@interface FirstViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

我在这行代码上遇到错误 -

NSIndexPath *path = [self.tableView indexPathForSelectedRow];

由于 tableView 是在 UITableViewController 而不是 UIViewController 类中找到的,我该如何解决这个问题?

编辑 -

这是与我的表格视图相关的代码 -

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    return [sarray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *cellId = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];

    if(cell == nil){
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId];
    }

    NSString *text = [sarray objectAtIndex:[indexPath row]];
    cell.textLabel.text = text;
    return cell;
}

【问题讨论】:

  • 请说明tableView 是如何在您的UIViewController 子类的子类中声明的。

标签: ios uitableview


【解决方案1】:

您可以简单地将 tableView 声明为属性:

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

【讨论】:

  • 我需要将它连接到情节提要中的任何东西还是只声明它?
  • 您需要将 tableView 连接到情节提要中的表格视图。我已经更新了我的答案以表明这一点。
【解决方案2】:

只有当您继承 UITableViewController 时,您才能获得免费的 UITableView

@interface FirstViewController : UITableViewController

【讨论】:

  • 可能有点晚了,但非常感谢。非常有用的信息。
【解决方案3】:

您可以简单地在FirstViewController 上声明一个表格视图属性,使用:

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

然后您需要将此属性连接到故事板中的Table View

【讨论】:

    猜你喜欢
    • 2014-04-27
    • 2012-03-04
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 2023-03-22
    • 2019-06-25
    • 2021-06-30
    相关资源
    最近更新 更多