UIBarButtonItem的新视图?

时间:2012-07-29 05:13:58

标签: ios xcode uibarbuttonitem

所以我之前看到的问题类似于此,但它们没有任何帮助。我也读过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];

}

3 个答案:

答案 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>