ios - UITableView didSelectRowAtIndexPath 未被调用

原文 标签 ios objective-c uitableview delegates

我有一个带有 UITableView 的 View Controller 。我将数据源和委托(delegate)都设置为 View Controller 。方法 cellForRowAtIndexPath: 正在被调用并且行为符合预期但是 didSelectRowAtIndexPath: 没有被调用。有什么想法吗?

我的 .h 中有这个:

@interface DetailViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

在 .m 中的 viewDidLoad 中,我有:
self.tableView.dataSource=self;
self.tableView.delegate=self;

调用 cellForRowAtIndexPath 但不调用 didSelectRowAtIndexPath 似乎没有意义。这是该方法现在的样子:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    NSLog(@"did select row at index path");
}

最佳答案

我遇到了一些可能的原因:

  • 确保 tableView 的编辑属性设置为 NO。 didSelectRowAtIndex:方法当 table 的编辑属性设置为 YES 时不调用。默认情况下,此属性设置为 NO。
    self.tableView.editing = NO;
    
  • 确保allowSelection 属性设置为YES。默认情况下是。
  • 试着打电话。 [ super viewDidLoad] 在 viewDidLoad 方法中或在 init 初始化程序中设置委托(delegate)和 dataSource 属性。
  • 中设置委托(delegate)和数据源属性加载查看 方法并将 tableView 分配给 UIViewController 的 view 属性。这是一个例子:
    - (void)loadView
    {
    
    UITableView *tableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame] style:UITableViewStylePlain];
    
    tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
    
    tableView.delegate = self;
    
    tableView.dataSource = self;
    
    [tableView reloadData];
    
    self.view = tableView;
    
    }
    
  • (这实际上是我通常做的)尝试从继承自 UIViewController 的 UITableViewController 子类化 DetailViewController。 UITableViewController 自动适应 UITableViewDelegate 和 UITableViewDataSource。
  • 关于ios - UITableView didSelectRowAtIndexPath 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34030387/

    相关文章:

    objective-c - 如何使用 NSFileHandle 写能力 Handler?

    ios - 在iPhone上未调用dismissViewControllerAnimated

    swift - UINavigationController 中的 tvOS UITableView 导致奇怪的淡入淡出行为 (UIView.mask)

    iphone - iPhone UITableView分页结果

    ios - UICollectionViewCell 中没有出现多个按钮

    php - 防止rest api中的重复请求

    ios - 在Apple Review之前获取App Store URL

    ios - 如何使用 Alamofire 从 JSON 中提取数据

    objective-c - iOS 10 使用私有(private) API 以编程方式打开/关闭 3G/4G 数据

    ios - 每天在特定时间调用一次函数 Swift