首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pushViewController调试

pushViewController调试
EN

Stack Overflow用户
提问于 2009-05-19 18:44:26
回答 2查看 6.9K关注 0票数 1

我正在尝试(从我的第三个孩子开始)用下面的代码加载根视图。这不起作用,当运行下面的代码时,我得到以下错误。

代码语言:javascript
复制
-[DetailViewController clickButton:]: unrecognized selector sent to instance 0x1161e00' 

代码:

代码语言:javascript
复制
 MapViewController *dvController = [[MapViewController alloc] initWithNibName:@"MapView" bundle:[NSBundle mainBundle]];
        [self.navigationController pushViewController:dvController animated:YES];
        [dvController release];
        dvController = nil;

这段完全相同的代码可以在其他视图上运行,你知道如何调试它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-20 04:58:21

您为创建MapViewController并将其推送到视图控制器堆栈而编写的代码是正确的。

无法识别的选择器错误告诉您,您正在尝试调用一个不存在的方法(名为clickButton:)。

我怀疑是拼写错误。我认为您很可能已经定义了一个按钮,该按钮调用创建新视图的代码。该方法应如下所示:

代码语言:javascript
复制
-(void) clickButton: (id) sender {
    MapViewController *dvController = [[MapViewController alloc] initWithNibName:@"MapView"  bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:dvController animated:YES];
    [dvController release];
    dvController = nil;
}

我会检查你是否有":(id)发送者“部分。我之前犯过一个错误,实现了-(空) clickButton {}方法,但消息实际上也发送了一个参数。

票数 1
EN

Stack Overflow用户

发布于 2009-05-20 13:30:44

  1. 如果您已经以编程方式创建了按钮并将目标设置为clickButton,请确保clickButton方法存在,
  2. clickButton方法(根据错误)应该接受一个参数。因此,该方法的定义将是

代码语言:javascript
复制
- (IBAction)clickButton:(id)sender;

  1. 如果已将发送方映射到IB中的事件,则可以省略:(Id) IBAction部分
  2. 要从基于导航的应用程序中的任何视图加载根视图控制器,请使用

[self navigationController:popToRootViewControllerAnimated:YES;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/884404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档