[英]Touchupinside and simple viewController question
我有一个非常简单的viewController问题。
我有一个带有2个按钮的主视图,在按钮的touchupinside上,我想加载一个新的View Controller(一个表视图)。
我已经创建了一个新的viewController及其nib文件。
像这样创建了一个IBAction,将按钮链接到IB:
- (IBAction)displayVin {
UIViewController *vinController = [[UIViewController alloc] initWithNibName:@"vinController" bundle:nil];
[self.navigationController pushViewController:vinController animated:YES];
[vinController release];
}
它什么也没做,因此我必须忘记一些东西,但是呢? 我应该在其他地方声明此newViewController吗? 它的编译和执行都很好,没有错误消息。
更新:
我现在正在使用这个:
- (IBAction)displayVin:(id)sender {
NSLog(@"here");
UIViewController *vinController = [[UIViewController alloc] initWithNibName:@"vinController" bundle:nil];
[self.navigationController pushViewController:vinController animated:YES];
[vinController release];
}
但是当我按下按钮时,它崩溃并显示此错误:
[displayVin]:无法识别的选择器已发送至实例0x8d03000 * *由于未捕获的异常'NSInvalidArgumentException'而终止了应用程序,原因:'-[displayVin]:无法识别的选择器已发送至实例0x8d03000'*
我应该在其他地方声明,还是“应该”足够的代码?
首先使用NSLog()确定您是否真正进入displayVin()例程。 按钮事件会将参数发送给acion,因此您应该将其声明为-(IBAction)displayVin:(id)sender
而不是仅-(IBAction)displayVin
。
对于更新的代码,您可能必须重新连接IB文件中的IBOutlet。 看起来它仍然在调用[viewController displayVin]方法(不带参数),而不是[viewController displayVin:]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.