我有一个选项卡栏,其中包含了一个导航控制器。使用这个导航控制器,我打开了一个新站点。此新网站包含可打开其他网站的按钮。但是当我点击这些按钮时,出现了一个错误:
*** 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];}
我做错了什么?
发布于 2011-12-13 06:02:17
您正在使用UIViewController的一个实例。您应该使用UIViewController子类的一个实例。
您有一些类,我怀疑它是UIViewController的子类。在那个类上,您定义了一个方法buttonPushListTest:。您没有告诉我们该类的名称,所以我将其命名为JasminViewController。
我假设您有一个带按钮的nib,并且您已经将该按钮配置为向目标发送buttonPushListTest:消息。nib认为目标的类是JasminViewController。
但是,在运行时,按钮的目标不是JasminViewController。在运行时,目标是一个普通的老式UIViewController。您可以分辨出来,因为错误消息显示为UIViewController。
所以,在你的程序中有一个地方,你正在创建一个对象,而这些对象是按钮的目标。您应该创建一个JasinViewController作为目标,但是您创建的却是一个普通的老式UIViewController。
https://stackoverflow.com/questions/8481463
复制相似问题