【问题标题】:Detail button on second view第二个视图上的详细信息按钮
【发布时间】:2010-12-14 22:55:51
【问题描述】:

我是 iOs 编程的新手,并且很难使用导航控制器。 我有一个表格视图,它在选择项目时显示详细视图。 “返回”按钮正确显示在详细视图的顶部,所以一切正常。

现在我想在详细视图中添加一个按钮以链接到网站。所以我尝试向导航控制器添加一个按钮。首先我是在 IB 中做的,但如果你这样做,它只会出现在第一个视图中并在详细视图中消失(我只想在详细视图中拥有它)。

然后我用代码试了一下(在viedDidLoad的detailviewcontroller中添加了:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(viewlink:)];

按钮出现,我添加了一个功能:

-(void)viewLink:(id)sender {
 NSLog(@"Went to view 2");
}

但是在运行应用程序时,我得到了很多引用的“-[ItemDetailViewController viewlink:]: unrecognized selector sent to instance 0x8a13cb0”。

最好的方法是什么? 到目前为止,我已经在这个问题上花费了几个小时,并且真的把我的头发拉出来了,因为这似乎是一件很简单的事情,所以我必须做一些基本的错误。

【问题讨论】:

  • 只是仔细检查 - 你的 .h 文件中有 -(void)viewLink:(id)sender; 吗?

标签: cocoa-touch ios button controller navigation


【解决方案1】:

在错误消息中,它显示“viewlink:”(小写 l),但您的方法名为 viewLink:(大写 L)。

调用该方法时,请确保使用完全相同的拼写和相同的大小写,因为语言区分大小写。

您还应该收到来自编译器的警告(不是运行时错误),说“'ItemDetailViewController' 可能无法响应 -viewlink:”。注意并解决所有警告。

语法高亮也会提示出现问题。无法识别的方法将显示为黑色,但已识别的方法将显示为浅蓝色。

【讨论】:

  • 我担心这是一个愚蠢的小错误...遗憾的是,我说将函数添加到 .h 文件并更改大写字母可以解决问题。非常感谢他的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-09-05
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
  • 1970-01-01
相关资源
最近更新 更多