我对编程非常陌生,特别是iOS,所以任何答案都应该像我是ADHD婴儿一样。
这就是我buttonclick
中的内容:
ItemCreateViewController *itemCreateViewConrtoller = [[ItemCreateViewController alloc] init];
[[self navigationController] pushViewController:itemCreateViewConrtoller animated:YES];
我错过了什么?
答案 0 :(得分:0)
有很多原因可能导致这种情况发生,其中您的按钮未触发预期的操作。按钮无法触发的原因之一是您的XIB按钮未连接到标头和方法文件中定义的按钮对象。
如果你查看.h文件,看看你所有的IBOutlet项目,如果它变暗,那么最左边的列应该有一个圆圈,否则它是连接的,而你需要在你的XIB中连接它文件。
如果这不是问题,请显示指定选择器的代码,它应该是这样的:
[cancel_button addTarget:self action:@selector(Cancel:) forControlEvents:UIControlEventTouchUpInside];
确保选择器是IBAction功能 -
-(IBAction)Cancel:(id)sender {
[self dismissViewControllerAnimated:YES completion:NULL];
return;
}
另一件事,pushViewController之后的任何语句都会在视图中的任何实际更改之前执行。只有控制权返回给IOS,才会发生实际的View更改。如果您的推送视图控制器命令在长条件进程内并且您无法正确编码返回/退出,则这很重要。
答案 1 :(得分:0)
由于您在第二个视图中使用XIB文件,因此需要按如下方式创建它 -
ItemCreateViewController *itemCreateViewConrtoller = [[ItemCreateViewController alloc] initWithNibName:@"ItemCreateViewController" bundle:nil]; //Ensure you use correct nib file name
然后你可以推它
[[self navigationController] pushViewController:itemCreateViewConrtoller animated:YES];
但是,由于您正在使用故事板,您可以将新视图添加到故事板,将按钮链接到新视图,并按下" push" segue,一切都会为你完成。