Objective c 如何获取self.navigationItem.title的值并设置为新变量?

Objective c 如何获取self.navigationItem.title的值并设置为新变量?,objective-c,uiviewcontroller,uinavigationcontroller,uinavigationitem,Objective C,Uiviewcontroller,Uinavigationcontroller,Uinavigationitem,在详细视图中,我试图从UITableView中动态设置导航项的标题。我想将其设置为NSString值—例如,如果我的标题是“土豆”,我想获取该字符串并将其设置为视图控制器中的变量 这是我到目前为止的代码。我尝试将这个新变量设置为UILabel文本,它总是输出字符串“Detail”-我似乎永远无法获得实际的标题值 NSString *theTitleValue = self.navigationItem.title; self.detailDescriptionLabel.text = theTi

在详细视图中,我试图从UITableView中动态设置导航项的标题。我想将其设置为NSString值—例如,如果我的标题是“土豆”,我想获取该字符串并将其设置为视图控制器中的变量

这是我到目前为止的代码。我尝试将这个新变量设置为UILabel文本,它总是输出字符串“Detail”-我似乎永远无法获得实际的标题值

NSString *theTitleValue = self.navigationItem.title;
self.detailDescriptionLabel.text = theTitleValue;
我应该指出,如果我手动将一个字符串设置为我的描述标签(UILabel),它可以正常工作。只有当我拉动self.navigationitem.title时,它才会返回为“Detail”

self.detailDescriptionLabel.text = @"Some stuff here LMAO!!!";
因此,上面的单行将在我的标签中输出该字符串。关于如何获取当前导航项的文本字符串值,有什么想法吗

编辑: 下面是我的表格视图中的代码,它推送了这个新的细节视图和标题设置。是否有其他方法将此变量从表视图传递到详图视图

我的意思是currentLabel的值正是我需要获取的。但是,下面的代码来自MasterViewController.m,我需要DetailViewController.m中的currentLabel变量。我不知道如何在视图控制器之间传递变量,所以在我看来,最简单的解决方法是从DetailViewController的导航标题中提取值

# MasterViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    // creating NSString value for current vegetable in array
    NSString *currentLabel = [self.vegetablesListing objectAtIndex:indexPath.row];
    DetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"VegetablesDetailViewCont"];

    [self.navigationController pushViewController:detailVC animated:YES];
    detailVC.navigationItem.title = currentLabel;
}

您可以直接设置新UIViewController的标题,甚至与导航控制器的标题一起设置。然后在新的详细视图中,只需调用
self.title
即可提取值

示例代码:

DetailViewController *detailVC = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewName"];
detailVC.title = currentLabel;
detailVC.navigationItem.title = currentLabel;

[self.navigationController pushViewController:detailVC animated:YES];
然后,在详细信息控制器中,您可以使用NSLog检查此值:

NSLog(@"%@", self.title);

奇怪的是我试过了,但它从我的UITableView中删除了标签。因此,使用该值,我得到列表中每个蔬菜细节视图的标签文本“蔬菜”-土豆、胡萝卜、青豆等。也许我设置的主要细节错误了?我用更多的代码编辑了上面的原始文章。在我的表视图中,我有didSelectRowAtIndexPath:方法。在这里,我设置变量
*currentLabel
,它从数组中提取动态数据并填充我的表。我需要将这个字符串值传递到下一页-我已经在通过设置navigationItem.title来实现这一点,所以我想我可以直接拉取这个值。上面你给我的代码是TableView标题,而不是detailView标题。这就是我遇到的问题——如果我能提供更多信息,请询问。但我对Obj-C还是相当陌生,所以这有点困难。我可能不得不提出另一个问题。。我觉得这可能有点太让人困惑了。
NSLog(@"%@", self.title);