tableView didSelectRowAtIndexPath无法正常工作

时间:2014-02-18 10:47:38

标签: ios iphone objective-c uitableview didselectrowatindexpath

我有一个非常奇怪的问题。 我在视图控制器中有一个UITableView,我可以自定义我希望它工作的所有内容。但我希望当我点击一行时会出现另一个视图(这并不难),所以我已经这样做了:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"didSelectRowAtIndexPath");
    self.myFicheView.hidden=NO;

    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

但是当我点击一行时,该方法不会被调用。就像它不起作用我尝试了很多东西,我发现了一些奇怪的东西。 当我在行上短暂点击时没有任何事情发生,但是当我在3秒内点击它时它会工作,当我在行上滑动手指时。

有人知道这里有什么问题吗?

@interface MapViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>
{

}
@property (strong, nonatomic) IBOutlet UITableView *myTableView;

这里是我的tableView的连接检查器 http://hpics.li/256d01e

2 个答案:

答案 0 :(得分:2)

我完全不知道你的xib是怎样的,假设视图正在你的桌面视图前面的某个地方,试着把你的tableview放在那个隐藏的视图前面。

假设您仅使用[tableView deselectRowAtIndexPath:indexPath animated:YES];方法取消隐藏选择,那么xib中有一个属性为您提供此功能,通过使用此属性,您可以删除此方法并尝试运行您的代码。请提供您的xib或某些已实现代码的快照,以便更好地说明。

答案 1 :(得分:1)

我认为你不会调用委托方法

plz将此代码包含在viewDidLoad方法

myTableView.delegate=self;
myTableView.dataSource=self;