2012-07-30 46 views
0

所以我见过以前的类似问题,但他们没有任何帮助。我也读过Apple的文档,但我无法理解我出错的地方。 AFAIK我在逻辑上做了一切事情,但是当我点击UItoolbar覆盖层上的完成按钮时,按钮可以被按下,但它什么也不做。这显然意味着它无法确认书面代码。但是如何?从barbuttonitem切换视图?

我想在我的UIToolBar上单击完成按钮时调出“TableViewController”的.nib。但下面的内容不允许点击来创建新视图。我该如何纠正这一点?请告诉我我错在哪里,应该替换什么以及为什么。

//Here's the selector: 
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: 
UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed)]; 

下面是我做了我的动作。顺便说一句,uitoolbar没有笔尖,它是imagepickercontroller(相机模式)上的叠加层。

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


//Yet nothing happens when I click on my done button on my overlay. The button can be 
clicked nothing happens. Please shed any insight pleasee! 
+0

我在您的其他职位的建议仍然有效:http://stackoverflow.com/questions/11712784/created-nib-view-from-uibatbuttonitem#comment15538002_11712784 – Rob 2012-07-30 00:19:46

+0

您能否为您创建'doneButton'的第一块代码提供一些上下文? – oltman 2012-07-30 00:19:48

+0

如果控件真的到达'doneButtonPressed'方法,你可以打印一些日志消息来跟踪吗? – 2012-07-30 00:20:04

回答

0

这实际上可能没有问题,但如果你使用上面的代码是你如何解雇你的模态视图控制器是不正确。除了可能的不当使用,我没有看到任何问题。

使用您使用的是目前的模态视图控制器是什么,然后将其关闭使用:

[self dismissModalViewControllerAnimated:YES]; 
+1

我同意你的直觉:完全倒退是让一个标记为“完成”的按钮带你到另一个视图,当你忽视这个视图时,它会让你回到相同的视图,同样的“完成”你以前有过的按钮! “完成”应该是驳回意见,而不是把你带到新的意见(这是你的解决方案建议)。如果有的话,如果你真的想提出另一种观点,那么按钮应该标记为“下一个”或类似的东西。但这并不能解释为什么他没有看到他的'TableViewController'。 – Rob 2012-07-30 02:42:07