ab.*_*lly 0 objective-c selection uitableview ios
我有一个采用&协议的UITableView
内部.并实施.UIViewController
UITableViewDelegate
UITableViewDataSource
numberOfRowsInSection
cellForRowAtIndexPath
在故事板中有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 *)indexPath
{
static NSString *CellIdentifier = @"FilterCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.textLabel.text = @"some text";
return cell;
}
@end
Run Code Online (Sandbox Code Playgroud)
Ser*_*nko 14
很难说没有看到代码,但试试这个:
1)didSelectRowAtIndexPath
来自UITableViewDelegate
,不是dataSource,你有连接吗?!
2)didSelectRowAtIndexPath
仔细检查签名.从一些可信来源复制粘贴它.也许有些错误.
3)确保插座连接正确.使用调试器停止它,比如说viewDidLoad
打印dataSource&delegate(po self.tableView.dataSource
调试器命令),确保它们指向正确的对象.
4)是否可以直观地选择行?也许你cell.userInteractionEnabled
在代码或故事板中设置为NO?
5)表视图在故事板中有一个选择属性:(可以吗?)
6)也许你有编辑模式的表?从调试中记录它以查看.
7)从indexPathsForSelectedRows
方法的角度选择行吗?如果覆盖并记录对单元格selected
访问者的调用怎么办?
归档时间: |
|
查看次数: |
6563 次 |
最近记录: |