【问题标题】:Get title of backBarButtonItem获取 backBarButtonItem 的标题
【发布时间】:2013-04-27 21:25:10
【问题描述】:

我目前正在编写一个有多个用户的应用程序。 我想在故事板中使用相同的“个人资料”视图来显示所有用户的信息。

计划是设置“个人资料”视图的标题,然后推送它。

 - (void) pushGeneralProfileViewFrom:(UIViewController *)target usernameAsTitleOfView:(NSString *)title {

    UIViewController *myView = [target.storyboard instantiateViewControllerWithIdentifier:@"GeneralProfileView"]; // created in storyboard, Feed View
    myView.title = title;
    [target.navigationController pushViewController:myView animated:YES];
}

这很好用。但是,“个人资料”视图也有将其引导至情节提要中其他视图的按钮。这些视图还显示相关用户的特定信息。

我打算使用 backBarButtonItem 的名称来了解我需要为其显示信息的用户。虽然我可以在模拟器中看到带有用户名的后退按钮,但我无法获得它的 self.navigationController.navigationItem.backBarButtonItem.titleself.navigationItem.backBarButtonItem.title。两者都返回null

我做错了什么? 另外,我觉得这不是处理这类事情的最佳做法。我在网上搜索过,到目前为止还没有看到更好的方法将值传递给我正在推送的视图。有什么建议吗?

谢谢。

【问题讨论】:

标签: ios uinavigationbar backbarbuttonitem


【解决方案1】:

当您的视图控制器在导航控制器界面中可见时,您看到的 backBarButtonItem 不是 this 视图控制器的 backBarButtonItem。它是 second 视图控制器的backBarButtonItem,堆栈中位于此视图控制器后面的那个。

所以你想要的是这样的:

UIInteger c = [self.navigationController.viewControllers count];
UIViewController* vc2 = [self.navigationController.viewControllers objectAtIndex:c-2];

现在获取 that 视图控制器的navigationItembackBarButtonItem。或者,如果它们相同,则直接获取其title

【讨论】:

  • 工作就像一个魅力:) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-21
相关资源
最近更新 更多