XCODE:来自UITableView的presentViewController不显示后退按钮

时间:2013-07-18 17:39:28

标签: ios uinavigationcontroller uinavigationbar

我一直在这里阅读教程,问题和答案(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];
你能帮帮我吗? 非常感谢。

1 个答案:

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