gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:32:22 26 4
gpt4 key购买 nike

在详细 View 中,我试图提取从我的 UITableView 动态设置的导航项的标题。我想将它设置为 NSString 值 - 例如,如果我的标题是“potatoes”,我想获取该字符串并将其设置为我的 View Controller 中的变量。

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

NSString *theTitleValue = self.navigationItem.title;
self.detailDescriptionLabel.text = theTitleValue;

我应该指出,如果我手动将字符串设置为我的描述标签 (UILabel),它会正常工作。只有当我拉动 self.navigationitem.title 时,它​​才会作为“详细信息”返回

self.detailDescriptionLabel.text = @"Some stuff here LMAO!!!";

所以上面的单行将在我的标签中输出该字符串。关于如何获取当前导航项的文字字符串值的任何想法?

编辑:这是我的表格 View 中的代码,它插入了这个新的详细 View 和标题设置。是否有另一种方法可以将此变量从 TableView 传递到详细 View ?

我的意思是currentLabel的值正是我需要抓取的。但是下面的代码来自 MasterViewController.m,我需要 DetailViewController.m 中的 currentLabel 变量。我不知道有什么方法可以在 View Controller 之间传递变量,所以在我看来,解决这个问题的最简单方法是从 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 的标题,甚至连同导航 Controller 的标题。然后在新的详细 View 中调用 self.title 来提取值。

示例代码:

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

[self.navigationController pushViewController:detailVC animated:YES];

然后在你的细节 Controller 中你可以用 NSLog 检查这个值:

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

关于objective-c - 如何获取 self.navigationItem.title 的值并设置为新变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8976109/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com