Ios Segue不适用于tableview单元格

Ios Segue不适用于tableview单元格,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有以下代码的功能,一旦我点击表格单元格,它就会转到另一个视图控制器,在那里有它的描述。我正试图以编程的方式来做这件事 这是我控制segue部分的代码,它不会被调用: 为什么不打电话 这是我的.h文件代码 @interface QuoteTableViewController : UITableViewController <UIGestureRecognizerDelegate,UITableViewDataSource,UITableViewDelegate> { int

我有以下代码的功能,一旦我点击表格单元格,它就会转到另一个视图控制器,在那里有它的描述。我正试图以编程的方式来做这件事

这是我控制segue部分的代码,它不会被调用:

为什么不打电话

这是我的.h文件代码

@interface QuoteTableViewController : UITableViewController <UIGestureRecognizerDelegate,UITableViewDataSource,UITableViewDelegate> {
    int i;
}
@property (strong, nonatomic) IBOutlet UIView *mainMenu;
@property (strong, nonatomic) IBOutlet UIButton *homeworkButton;
@property (strong, nonatomic) IBOutlet UIButton *uploadButton;
@property (strong, nonatomic) NSArray *arrayOfOurQuotes;
@property (strong, nonatomic) NSMutableArray *ourNumberOfQuotes;

您是否正在切换到当前viewController已在使用的其他情节提要?如果是相同的,请更改方法中的代码,请参见下面的-这一行在这里UIStoryboard。。。不需要

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
不需要。你可以叫self.storyboard

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

   DetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"detailViewController"];
   detailVC.navigationItem.title = self.ourNumberOfQuotes[indexPath];
   detailVC.indexRow =  [NSString stringWithFormat:@"%@",indexPath];

   [self.navigationController pushViewController:detailVC animated:YES];
    }

如果detailVC已经设置了脚本标识符@detailViewController,当然。

好的,问题是,当我从viewDidLoad方法(委托方法)中注释掉你的手势代码时,调用了didSelectRowAtIndexPath

这就是我所想的,要么滑动手势起作用,要么单元格选择不起作用,要么如果删除手势部分,选择工作,并调用didSelectRowAtIndexPath。由于我从未使用过手势,我不知道如何使这两个动作一起工作

希望这有点帮助。

来自:

在这种情况下,我遇到了两件事

您可能忘记实现UITableViewDelegate协议,或者 在类和表视图之间没有委派出口

您的行中可能有一个UIView,它是第一响应者,并且 让你的点击消失。说一个UIButton或类似的话


您应该检查以确保您已经实现了UITableViewDelegate协议,并且需要确保您正在单击单元格,而不是它前面的视图或手势识别器。

在代码中查找零值。因为在Obj-C中,对nil的调用被处理。您有self.navigationController吗?detailVC是否也在创建中?您使用的是导航控制器吗?它可能是一个视图控制器,这就是它不能工作的原因。请尝试[seld presentViewController:]在我的tableViewController之前有一个navigationController。但我不知道是否正在创建detailVC?在您正在推送view controller的行中添加断点,并在停止后键入lldb命令po detailVC如果您的代码没有输入diddelectrowatinexpath方法,那么您可能还没有设置tableView的委托。问题是我甚至无法转到DetailViewCotroller。那么,在-viewDidLoad方法甚至没有加载的情况下,在其上放置断点的目的是什么呢?我给了您一步一步的调试点。如果您的代码通过了前两个步骤,您将尝试在DetailViewController中设置断点。这里的操作都是正确的,您可能忘记在您的中包含引用。hI根据更新的问题编辑了我的回答,并查看了示例代码。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

   DetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"detailViewController"];
   detailVC.navigationItem.title = self.ourNumberOfQuotes[indexPath];
   detailVC.indexRow =  [NSString stringWithFormat:@"%@",indexPath];

   [self.navigationController pushViewController:detailVC animated:YES];
    }