相关疑难解决方法(0)

-didSelectRowAtIndexPath:未被调用

我正在选项卡视图中编写一个带有表格视图的iOS应用程序.在我UITableViewController,我实现了-tableView:didSelectRowAtIndexPath:,但是当我在运行时选择一行时,该方法没有被调用.正在填充表视图,所以我知道我的控制器中正在调用其他tableView方法.

有没有人有任何想法,我可能搞砸了,以实现这一目标?

cocoa-touch uitableview didselectrowatindexpath ios

288
推荐指数
28
解决办法
20万
查看次数

didSelectRowAtIndexPath:未被调用

我有一个UITableView作为我的子视图UIScrollVIew,这是我控制的主视图MainViewController.

在MainViewController.h中

@interface MainViewController : UIViewController <UIGestureRecognizerDelegate, UITableViewDelegate, UITableViewDataSource>

// other stuff here...

@property (weak, nonatomic) IBOutlet UITableView *myTableView;
Run Code Online (Sandbox Code Playgroud)

在MainViewController.m中

@synthesize myTableView;

// other stuff here...

- (void)viewDidLoad {
    myTableView.delegate = self;
    myTableView.datasource = self;
}

// other stuff here...

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
   [self performSegueWithIdentifier:@"listAttributesSegue" sender:self];
}
Run Code Online (Sandbox Code Playgroud)

我知道didSelectRowAtIndexPath没有被调用,因为我已经在方法本身和它内部的代码行上设置了断点,并且都没有被调用.我也知道数据源工作正常,因为我有其他功能可以在运行时修改单元格,并且它们工作正常.我使用最新的Xcode和iOS 5.0设置作为开发目标.我搜索并搜索了一个答案.有人有主意吗?

编辑: 我找到了答案.我UITapGestureRecognizer有一套myTableView的superView.这超出了选择呼叫.相信任何人都认为可能是它.在我将其标记为正确之前,您的答案已被删除.

编辑2: 很多人一直在评论这个,所以我会分享它.如果您遇到此问题,只需设置myGestureRecognizer.cancelsTouchInViewfalse,一切都应该正常工作.

iphone uitableview didselectrowatindexpath ios

57
推荐指数
6
解决办法
4万
查看次数

Xcode 8/Swift 3:didSelectRowAt vs didSelectRowAtIndexPath

我们的Swift 3迁移之后会发生一些非常奇怪的事情.我们有两个视图控制器,它们都实现,UITableViewDelegate并且它们都实现public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

但是只在其中一个中调用实际方法.

如果我在一个不工作改变public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)public func tableView(_ tableView: UITableView, didSelectRowAtIndexPath: IndexPath)(注意雨燕2.2的签名),那么他们都工作.

两个视图控制器都是Swift类,所以我不确定到底发生了什么.我很确定它可能是一个Objective-C vs Swift互操作性问题,但我们的整个项目是用Swift编写的,所以这就是为什么很难弄清楚导致这个问题的原因.

任何帮助表示赞赏.谢谢.

uitableview ios swift3 xcode8

3
推荐指数
1
解决办法
6706
查看次数

永远不会调用UITableView didSelectRowAtIndexPath

我有一个采用&协议的UITableView内部.并实施.UIViewControllerUITableViewDelegateUITableViewDataSourcenumberOfRowsInSectioncellForRowAtIndexPath

在故事板中有dataSource和delegate的出口.为TableView选择单一选择.选中触摸显示选择.

我在模拟器上,触摸表格单元运行项目,得到了didHighlightRowAtIndexPath电话,但 didSelectRowAtIndexPath还是willSelectRowAtIndexPath从来不被称为.

我忘记了什么?什么能以这种方式影响TableView?

PS我知道,有很多这样的问题,但我花了几个小时谷歌搜索和阅读stackoverflow仍然没有解决我的问题.

TestViewController.h:

@interface TestViewController : ViewController <UITableViewDelegate, UITableViewDataSource>

@end

TestViewController.m:

@interface TestViewController ()
@property (strong) IBOutlet UITableView *tableView;
@end

@implementation TestViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"selected");
}

- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"highlighted");
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 2;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath …
Run Code Online (Sandbox Code Playgroud)

objective-c selection uitableview ios

0
推荐指数
1
解决办法
6563
查看次数