我有一个带有根视图控制器和子视图控制器的导航应用程序。在子-didSelectRowAtIndexPath
方法中,我添加了一个带有目标/操作的后退按钮,如下所示:
选择后退按钮时,我想返回到根视图,而不是(上一个)子视图。但是,我无法弄清楚为什么动作方法没有触发:
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Question *newQuestion = [[Question alloc]
initWithNibName:@"Question"
bundle:nil];
newQuestion.testQuestion = self.testQuestion;
[self.navigationController dismissModalViewControllerAnimated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle:@"Quiz"
style:UIBarButtonItemStylePlain
target:self
action:@selector(backToMenu)];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
[self.navigationController pushViewController:newQuestion
animated:YES];
[newQuestion release];
}
在我的问题类的顶部,我包含backToMenu方法:
-
(void)backToMenu {
NSLog(@" backToMenu");
[self.navigationController popViewControllerAnimated:YES];
然而,-backToMenu
永远不会被解雇;我从未看到NSLog
显示。
我的-viewWillAppear
被触发,但由于按下了后退按钮或正在选择表格行,我不知道如何判断我是否在那里。
对你来说可能很明显,但我很难过...... thx
答案 0 :(得分:0)
为什么不把你的后退按钮放在屏幕上你希望它显示我假设的'问题'屏幕和'backToMenu'方法,你可以使用
[self.navigationController popToRootViewControllerAnimated:YES];