Ios 获得后座议员头衔

Ios 获得后座议员头衔,ios,uinavigationbar,backbarbuttonitem,Ios,Uinavigationbar,Backbarbuttonitem,我目前正在编写一个有多个用户的应用程序。 我想在故事板中使用相同的纵断面图来显示所有用户的信息 计划是设置纵断面图的标题,然后推送它 - (void) pushGeneralProfileViewFrom:(UIViewController *)target usernameAsTitleOfView:(NSString *)title { UIViewController *myView = [target.storyboard instantiateViewControllerW

我目前正在编写一个有多个用户的应用程序。 我想在故事板中使用相同的纵断面图来显示所有用户的信息

计划是设置纵断面图的标题,然后推送它

 - (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];
}
这很有效。但是,纵断面图也有按钮,可将其引导到情节提要中的其他视图。这些视图还显示相关用户的特定信息

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

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

谢谢。

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

所以你想要的是:

UIInteger c = [self.navigationController.viewControllers count];
UIViewController* vc2 = [self.navigationController.viewControllers objectAtIndex:c-2];
现在获取该视图控制器的navigationItem的backBarButtonItem。或者,如果它们相同,只需获取其标题。

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

所以你想要的是:

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

现在获取该视图控制器的navigationItem的backBarButtonItem。或者,如果它们是相同的,就直接得到它的标题。

像符咒一样工作:谢谢。像符咒一样工作:谢谢。可能重复的可能重复的