2

在詳細視圖中,我試圖從我的UITableView中動態設置導航項目的標題。我想將它設置爲NSString值 - 例如,如果我的標題是「土豆」,我想獲取該字符串並將其設置爲我的視圖控制器中的變量。如何獲取self.navigationItem.title的值並設置爲新變量?

下面是我到目前爲止的代碼。我試着將這個新變量設置爲我的UILabel文本,它總是輸出字符串「Detail」 - 我永遠無法得到實際的標題值。

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

我應該指出,如果我手動設置一個字符串到我的描述標籤(UILabel)它工作正常。只有當我拉self.navigationitem.title它回來的「詳細信息」

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; 
} 

回答

3

你可以做的是直接設置新的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); 
3
self.detailDescriptionLabel.text = self.navigationController.navigationBar.topItem.title; 
+0

奇怪,這是我試過了,但它拉動標籤從我的UITableView代替。所以有了這個價值,我就可以在我的清單中獲得每個蔬菜細節視圖的標籤文本「蔬菜」 - 土豆,胡蘿蔔,青豆等。也許我設置的主要細節錯誤?我用更多的代碼編輯我的原始帖子。 – Jake

+0

哦!你在你的應用程序中編碼了什麼...? – samfisher

+0

我的表格視圖裏面有didSelectRowAtIndexPath:方法。在這裏我設置了變量'* currentLabel',它從數組中提取動態數據並填充我的表。我需要將這個String值傳遞到下一頁 - 我已經通過設置navigationItem.title來實現這一點,所以我想我可以只取這個值。你上面給我的代碼是拉動TableView標題,而不是detailView標題。這就是我遇到的問題 - 如果我能提供更多信息,請詢問。但是我在Obj-C方面還是比較新的,所以這有點困難。 – Jake

相關問題