Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Touchupinside和简单的viewController问题_Objective C_Ios_Ios4 - Fatal编程技术网

Objective c Touchupinside和简单的viewController问题

Objective c Touchupinside和简单的viewController问题,objective-c,ios,ios4,Objective C,Ios,Ios4,我有一个非常简单的viewController问题 我有一个带有2个按钮的主视图,在触碰一个按钮的内部,我想加载一个新的视图控制器(一个表视图) 我已经用它的nib文件创建了一个新的viewController 创建了一个像这样的iAction,我将按钮链接到了IB中: - (IBAction)displayVin { UIViewController *vinController = [[UIViewController alloc] initWithNibName:@"vinCon

我有一个非常简单的viewController问题

我有一个带有2个按钮的主视图,在触碰一个按钮的内部,我想加载一个新的视图控制器(一个表视图)

我已经用它的nib文件创建了一个新的viewController

创建了一个像这样的iAction,我将按钮链接到了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];

}
但当我按下按钮时,它会因为这个错误而崩溃:

[显示VIN]:发送到实例0x8d03000的无法识别的选择器 **由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[displayVin]:无法识别的选择器已发送到实例0x8d03000'*


我应该在其他地方声明什么,还是“应该”这段代码就足够了?

首先使用NSLog()确定您是否实际在displayVin()例程中。按钮事件向acion发送一个参数,因此您可能应该将其声明为
-(iAction)displayVin:(id)sender
,而不仅仅是
-(iAction)displayVin
,对于更新的代码,您可能必须在IB文件中重新连接IBOutlet。看起来它仍然在调用[viewController displayVin]方法(没有参数),而不是[viewController displayVin:]

我在displayVin方法中,它打印出来很好,谢谢提示。我已经添加了(id)sender,现在在头文件和实现文件中使用-(iAction)displayVin:(id)sender,它现在崩溃了(我想这是一件好事,至少它正在注册),登录更新的questionnice,不再崩溃了!谢谢它仍然正确地打印NSlog,没有做任何其他事情,例如移动视图,但至少没有崩溃:)再次阅读代码后:检查是否确实使用了navigationController。如果未设置,则不会设置self.navigationController,并且pushModalViewController不会执行任何操作。假设iAction方法位于viewController中,将该调用替换为[self-pushModalViewController:vinController-animated:YES];应该可以工作…感谢我用“self”而不是“self.navigationController”替换了它,但现在它的抱怨是这样的:“警告:'VinsViewController'可能不会响应'-pushViewController:动画:'”