所以我之前看到的问题类似于此,但它们没有任何帮助。我也读过Apple的文档,但我无法理解我哪里出错了。 AFAIK我在逻辑上做了所有事情,但是当我点击UItoolbar叠加上的完成按钮时,按钮可以被按下但是它什么也没做。这显然意味着它无法确认书面代码。但是如何?
当我在UIToolBar上单击完成按钮时,我想调出“TableViewController”的.nib。但下面不允许点击显示新视图。我该如何纠正这个?请告诉我哪里出错了,应该更换什么以及为什么。
-(void)doneButtonPressed {
TableViewController *UIView = [[TableViewController alloc]
initWithNibName:@"TableViewController" bundle:nil];
UIView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:UIView animated:YES];
[UIView release];
}
答案 0 :(得分:1)
TableViewController
实例,但您没有为该实例提供唯一名称。你用另一个类的名字命名它,这肯定会引发问题。事实上,我很惊讶它没有通过错误。
请尝试以下方法:
TableViewController *tableView = [[TableViewController alloc]
initWithNibName:@"TableViewController" bundle:nil];
tableView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:tableView animated:YES];
现在,您的TableViewController
实例具有唯一的名称,该名称在整个方法的其余部分引用。要清楚 - UIView
是另一个类名,因此不能用作对象实例的名称。
编辑:此外,请务必将按钮的选择器doneButtonPressed:
添加到其视图控制器的.h文件中。此外,如果您愿意,可以在函数的开头放一个NSLog()
调用,以确保它不被调用(或者 )。
答案 1 :(得分:0)
当按钮动作未触发时,要检查的是您已获得适当的选择器。如果您已正确按照选择器。确保您没有使用
的选择器@selector(doneButtonPressed:)
将寻找类似的功能: -
- (void) doneButtonPressed:(id) sender
对于您的会员功能,您需要
@selector (doneButtonPressed)
调试器是你的朋友。从断点开始,以确保调用您的函数。
如果您正在进入该功能,那么接下来要检查Kraken的答案。
答案 2 :(得分:0)
使用类名作为变量名没有任何限制。虽然你应该改变它,因为它令人困惑并且不遵循iOS编码惯例。
“按钮可以被推动但不做任何事情”,选择器甚至被调用了吗?
- (void)doneButtonPressed
展示如何创建UIBarButtonItem以验证您是在init方法中提供了正确的选择器,还是直接在界面构建器中连接了按钮(由于您没有使用(IBAction)返回签名,因此它看起来不像。) p>