3

我一直在这里(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];

你能帮助我吗?非常感谢。

4

1 回答 1

4

你不能用这种方式显示典型的后退按钮。当您使用pusviewcontroller:方法显示视图控制器时,它默认出现。

而不是这样做,添加一个UIToolBar到 TermasChavasqueira.xib并添加一个用于关闭视图的条形按钮。

写下UIBarbuttonlike的动作:

- (void)dismiss:(id)sender
{
   [self dismissViewControllerAnimated:YES completion:nil];
}

如果您仍然需要使用UINavigationController更改:

navController.navigationItem.backBarButtonItem = backButton;

navController.navigationItem.leftBarButtonItem = backButton;
于 2013-07-18T17:45:30.487 回答