尝试单击我的应用程序中的segueway时,出现以下调试消息。

"SmokingPig[13840:c07] -[UIViewController setDetailModal:]: unrecognized selector sent to instance 0x75836c0"

这是我的TableViewController.m文件(或我认为至少被弄乱的部分)
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowDetails"]) {
    DetailViewController *detailviewcontroller = [segue destinationViewController];

    NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];

    int row = [myIndexPath row];
    detailviewcontroller.DetailModal = @[_Title[row], _Description[row]];
}

这是我的DetailViewController.h文件
#进口
@interface DetailViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *TitleLabel;
@property (strong, nonatomic) IBOutlet UILabel *DescriptionLabel;

@property (strong, nonatomic) NSArray *DetailModal;

@end

最佳答案

segue指向通用UIViewController的实例,而不是您的DetailViewController的实例。如果在IB中描述了segue,请在segue的目标端选择视图控制器,然后使用身份检查器(左起第三个检查器)并确保将自定义类设置为DetailViewController。

您也可能在此行上收到警告:

DetailViewController *detailviewcontroller = [segue destinationViewController];

通过强制修复:
DetailViewController *detailviewcontroller = (DetailViewController *)[segue destinationViewController];

关于ios - 无法识别的选择器已发送到setDetailModal的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24375841/

10-08 21:45