从UIBarButtonItem的新视图?

所以我看过以前的类似问题,但是没有任何帮助。 我也读过苹果的文档,但是我不明白我出错的地方。 AFAIK我做了所有的逻辑,但是当我点击一个UItoolbar覆盖层上的完成button,button可以推动,但它什么都不做。 这显然意味着它不能确认书面的代码。 但是,如何?

当我在UIToolBar上单击完成button时,我想调出“TableViewController”的.nib。 但是下面是不允许点击来提出一个新的观点。 我如何纠正这一点? 请告诉我我错在哪里,应该更换什么,为什么。

-(void)doneButtonPressed { TableViewController *UIView = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:nil]; UIView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:UIView animated:YES]; [UIView release]; } 

哇,你有一些奇怪的东西在这里。 在你的第一行中,你正确地分配和启动TableViewController实例,但是你没有给这个实例一个唯一的名字。 你用另一个class级的名字来命名,这肯定会引发问题。 事实上,我很惊讶它没有通过一个错误。

尝试以下方法:

 TableViewController *tableView = [[TableViewController alloc] initWithNibName:@"TableViewController" bundle:nil]; tableView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:tableView animated:YES]; 

现在,你的TableViewController实例有一个唯一的名字,在方法的其余部分被引用。 只是要清楚UIView是另一个类名 ,因此不能用作对象实例的名称。

编辑:另外,一定要添加你的button的select器doneButtonPressed:它的视图控制器的.h文件。 另外,如果你喜欢,你可以在函数的开始处抛出一个NSLog()调用,以确保它不是(或者也许)被调用。

当button操作没有触发时,要检查的东西是你有合适的select器。 如果你正确地按照select。 确保你没有使用select器

 @selector(doneButtonPressed:) 

这将寻找一个function,如:

 - (void) doneButtonPressed:(id) sender 

对于你的会员function,你需要

 @selector (doneButtonPressed) 

debugging器是你的朋友在这里。 从断点开始,确保你的函数被调用。

如果你正在进入function,那么Kraken的答案是下一个要检查的东西。

无论使用类名作为variables名都没有限制。 虽然你应该改变它,因为它的混乱和不遵循iOS编码约定。

“button可以推,但没有做任何事情”,select器甚至被称为?

– (无效)doneButtonPressed

显示如何创buildUIBarButtonItem以validation您在init方法中提供了正确的select器,还是直接在界面构build器中连接button(因为您没有使用(IBAction)返回签名,所以看起来不像。