1

我正在编写一个基于 UITabBarController 的应用程序,它有 10 多个 viewControllers 和相应的 UINavigationControllers。每个 viewContoller 都有一个(短)Title 和一个(长)navigationTitle。短标题显示在 TabBar 图标下方,长标题显示在导航栏顶部。

UITabBarController 显示前 4 个选项卡并自动添加一个“更多”选项卡,该选项卡会显示其余选项卡的列表。此列表显示每个视图控制器的(短)标题。我怎样才能告诉它显示(长)navigationTitle?

4

2 回答 2

3

我最近为一个应用程序做了这个,发现最好的方法是创建一个自定义数据源,将更多表中的标题重命名为长名称。以其他方式执行此操作根本不切实际,因为名称必须更改太多次(一次在标签栏加载时,一次在更多视图加载时,再次在自定义部分加载时,再次在自定义部分关闭时)。

我在这里找到了基本说明并简单地更改了标题。我使用一个 plist 来保存每个部分的所有短名称和长名称。

我的 cellForRowAtIndexPath 代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [originalDataSource tableView:tableView cellForRowAtIndexPath:indexPath];
    cell.textLabel.text = [[sections objectAtIndex:indexPath.row+4] objectForKey:@"LongName"];
    return cell;
}
于 2009-08-18T21:52:31.100 回答
0

您应该尝试将所有选项卡默认为(长)标题,然后以编程方式将可见选项卡更改为其(短)名称。如果您不知道如何以编程方式更改它们,请告诉我。这实际上可能是一种首先做你想做的事情的方法。我会详细说明提示。

于 2009-07-23T16:56:42.537 回答