无法识别的选择器发送到实例...使用 segues 将字符串传递给另一个视图控制器

Posted

技术标签:

【中文标题】无法识别的选择器发送到实例...使用 segues 将字符串传递给另一个视图控制器【英文标题】:unrecognized selector sent to instance... Using segues to pass a string to another view controller 【发布时间】:2013-03-06 01:52:10 【问题描述】:

我正在尝试将链接传递给自定义控制器(GMWebView,UIViewController 的一个子类,其中包含 UIWebView)并且我收到此错误:

2013-03-05 20:34:37.930 viei_A6[3233:c07] -[UIViewController setLink:]:无法识别的选择器发送到实例 0x71b91d0 2013-03-05 20:34:37.931 viei_A6[3233:c07] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[UIViewController setLink:]:无法识别的选择器发送到实例 0x71b91d0 '

我的程序使用 segue 移动到 GMWebView,我正在设置 UIWebView 对象的链接。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender


    if ([[segue identifier] isEqualToString:@"pushGMWeb"]) 
        //NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
        //NSDate *object = _objects[indexPath.row];
        //[[segue destinationViewController] setDetailItem:object];
        GMWebView *detailViewController = [segue destinationViewController];
        NSLog(@"HERE is the link: __ %@",[[channel.items objectAtIndex:[self.tableView indexPathForSelectedRow].row] link]);
        //it crashes when the following line is executed
        detailViewController.link = [[channel.items objectAtIndex:[self.tableView indexPathForSelectedRow].row] link];
    

这里是setLink:

- (void)setLink:(NSString *)newLink

    NSLog(@"testing for crash");
    if (link != newLink) 
        link = newLink;
        // Update the view.
        [self configureView];
     

任何帮助都会很好,这是目前唯一让我无法完成我的应用程序的事情

【问题讨论】:

【参考方案1】:

在情节提要上检查此视图控制器的类。看起来实际的班级是UIViewController。你想把它改成GMWebView

【讨论】:

以上是关于无法识别的选择器发送到实例...使用 segues 将字符串传递给另一个视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

-[UIButton _layoutAttributes]:发送到实例的无法识别的选择器

打开 segue 时无法识别的实例选择器

使用 NSTimer 时发送到实例的无法识别的选择器

[UICollectionViewCell imageView]:无法识别的选择器发送到实例

无法识别的选择器发送到实例(使用 UIBarButtonItem)

NSInvalidArgumentException - 无法识别的选择器发送到实例