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

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

 - (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

我究竟做错了什么?
另外,我感觉这不是处理这类事情的最佳实践。我已经在网上搜索过,到目前为止,还没有找到一种更好的将值传递给我所推动的视图的方法。有什么建议吗?

谢谢。

最佳答案

在导航控制器界面中可见视图控制器时看到的backBarButtonItem不是此视图控制器的backBarButtonItem。它是第二个视图控制器的backBarButtonItem,它在堆栈中位于该视图控制器之后。

所以您想要的是:

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

现在获取该视图控制器的backBarButtonItemnavigationItem。或者,如果它们相同,则仅获取其title

关于ios - 获取backBarButtonItem的标题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16257009/

10-10 20:36