2011-12-12 44 views
0

我有一个标签栏,其中包含一个导航控制器。与此导航控制器我打开一个新的网站。这个新网站包含应打开其他网站的按钮。但是当我点击这些按钮出现错误:xcode 4 - 链接到在标签控制器中查看导航控制器

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController buttonPushTestList:]: unrecognized selector sent to instance 0x4eac880' 

打开网站,在标签控制器导航控制器包含以下代码:

.h文件中:

- (IBAction) buttonPushTestList:(id)sender; 

.m文件:

- (IBAction)buttonPushTestList:(id)sender { 

UIViewController *testlist = [[UIViewController alloc] initWithNibName: @"TestList" bundle:[NSBundle mainBundle]]; 
[self.navigationController pushViewController: testlist animated:YES]; 

}

我做错了什么? :(

回答

2

您使用的UIViewController的一个实例。您应该使用的UIViewController您的一个实例。

你有一些类,我怀疑是的UIViewController的子类。在这个类你已经定义了一个方法buttonPushListTest:你没有告诉我们该类的名字,所以我打算叫它JasminViewController

我假设你有一个带有按钮的笔尖,并且你已经配置了该按钮发送buttonPushListTest:消息到目标,nib认为目标的类是JasminViewController。

但是,在运行时,按钮的目标是而不是 JasminViewController。在运行时,目标是一个普通的旧UIViewController。你可以告诉,因为错误消息说UIViewController。

所以,在你的程序中有一个地方你正在创建的对象是按钮的目标。您应该创建一个JasinViewController作为目标,但是您正在创建一个普通的旧UIViewController。

+0

我不知道我是否理解你..我需要改变什么? – Jasmin

+0

我修改了我的答案。 –

+0

对不起,我不明白。有可能向您发送我的Xcode项目吗?这对我来说是紧急的,因为它是一个学校项目。 – Jasmin

相关问题