繁体   English   中英

Touchupinside和简单的viewController问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM