我是iOS开发的新手。我有一个具有UINavigationController(具有嵌入式UITableViewController,称为TableView1)的应用程序,我需要在UITableView的水龙头上为TableView1显示另一个UITableViewCell(TableView2)。

我进行了一些在线搜索,并没有真正找到超级有用的东西,但是我发现我必须提供TableView2而不是推送它。一切正常,除了TableView2没有后退按钮,我必须创建自己的UIBarButtonItem并分配给leftBarButtonItemnavigationItem

一切都很好,除了我忍不住觉得自己做错了。有没有更简单的方法(或更正确的方法)来完成我要完成的工作?

TableView1的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewController *tableViewController = [[UITableViewController alloc] init];

    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:tableViewController];

    [self.navigationController presentViewController:navigationController
                                            animated:YES
                                          completion:nil];
}


编辑:连同这个问题,如果我发现我正在以正确的方式执行此操作,我如何显示正常的后退按钮?还是可以?

最佳答案

直接从该视图控制器中呈现它:

[self presentViewController:navigationController animated:YES completion:nil];


或使用pushViewController

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewController *tableViewController = [[UITableViewController alloc] init];

    [self.navigationController pushViewController:tableViewController animated:YES];
}

10-07 19:12