我一直在这里阅读教程,问题和答案(Stackoverflow),但我无法理解。它不起作用,所以我一定错过了什么。
情况是:从表格视图中,一旦用户选择一行,就会显示包含信息的新视图。不是详细视图,我想嵌入导航控制器,但我不知道如何。
我写的代码:
...
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIViewController *viewController =nil;
switch (indexPath.section) {
case termaSection:
switch (indexPath.row) {
case 0:{
viewController = [[TermasChavasqueira alloc]init];
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:viewController];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:nil
action:nil];
navController.navigationItem.backBarButtonItem = backButton;
[self presentViewController:navController animated:YES completion:nil];
//[self presentViewController:viewController animated:YES completion:nil];
break;
}
default:
break;
}
default:
break;
}
我在TermasChavasqueira.xib上获得的是一个NavigationBar,没有后退按钮。命令[self presentViewController:viewController animated:YES completion:nil];在Interface Builder上添加按钮可以正常工作,但它是常规按钮,而不是箭头按钮。
下一段代码也不起作用:
[self.navigationController pushViewController:navController animated:YES];
你能帮帮我吗?
非常感谢。
答案 0 :(得分:4)
您无法以这种方式显示典型的backbuton。当您使用pusviewcontroller:
方法显示视图控制器时,它默认出现。
不是这样做,而是将UIToolBar
添加到T ermasChavasqueira.xib
并添加一个按钮来解除视图。
编写UIBarbutton
的行为,如:
- (void)dismiss:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
如果您仍需要使用UINavigationController
更改:
navController.navigationItem.backBarButtonItem = backButton
;
到
navController.navigationItem.leftBarButtonItem = backButton;