【问题标题】:uitableview + navigation controller set title from selected elementuitableview + 导航控制器从选定元素设置标题
【发布时间】:2012-03-29 01:44:33
【问题描述】:

我有一个UINnavigationController 来处理UITableView 中的导航。

当我从表中选择一行时,我需要在 UINavigationController 标题中显示上一个菜单中的选定项目。

单元格的标签是从填充UITableView 行的外部xml 读取的。

如何在UINavigationBar 的标题上显示我的选择?

我使用self.title 命令设置了一个静态标题,但它不符合我的需要

【问题讨论】:

  • 已解决:这是 coredata 实体给出的问题。用 self.title = [selectedObject valueForKey: @"name"]; 解决

标签: ios objective-c xcode uitableview uinavigationcontroller


【解决方案1】:

这对你有用吗?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
    DetailTableViewController *detailController = [[DetailTableViewController alloc] initWithStyle:UITableViewStyleGrouped];
    //   Set the detail controller title to whatever you want here...
    detailController.title = @"Your title";

    //   Or set it to the title of this row
    UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:indexPath];
    detailController.title = cell.textLabel.text;

    [[self navigationController] pushViewController:detailController animated:YES];
}

【讨论】:

  • 当我调用 detailview 时它可以工作,但我的应用程序以这种方式工作:Table1->Table2->Table3->DetailView 从 Table3 到 DetailView 我没有问题,它像你建议的那样工作得很好。我想将 table1 上的选择显示为 table2 等中的标题...
  • 是的,代码示例是为了说明。从 table1->table2,然后是 table2->table3,它应该以相同的方式工作。在该层次结构中的每个 UITableViewController 子类中,您可以以同样的方式填充下一个控制器的 title 属性。
【解决方案2】:

通常UINavigationController 总是从UIViewController 中挑选出实际加载的title。这就是为什么你必须在 viewDidLoad 中定义它:

self.title = @"Title";

上面显示的方法似乎更动态......但这也有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2020-04-06
    • 2011-11-30
    • 2014-03-09
    • 1970-01-01
    • 2012-09-02
    相关资源
    最近更新 更多