2

詳細ビューでは、私はUITableViewから動的に設定されたナビゲーションアイテムのタイトルをプルしようとしています。私はNSString値として設定したい - たとえば、私のタイトルが "ジャガイモ"の場合、私はその文字列を取得し、それをビューコントローラの変数として設定したいと考えています。self.navigationItem.titleの値を取得して新しい変数として設定する方法は?

これまでのコードは次のとおりです。私はこの新しい変数を私のUILabelテキストとして設定しようとしましたが、常に "Detail"という文字列を出力します。実際のタイトル値を得ることはできません。

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

手動で説明ラベル(UILabel)に文字列を設定すると、正しく動作することを指摘しておきます。私はそれが「ディテール」

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

として戻ってくるんself.navigationitem.titleを引っ張っていた場合にのみので、意志の出力上記の一行私のラベルでその文字列。私の現在のナビゲーション項目のリテラル文字列値をどのように得ることができるかについての考えはありますか?

編集: これは、この新しい詳細ビューとタイトル設定をプッシュする私のテーブルビューのコードです。この変数をテーブルビューから詳細ビューに渡す方法もありますか?

私が意味することは、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; 
} 

答えて

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を設定しています。その代わりにこの値を引き出すことができます。上記のコードは、detailViewのタイトルではなく、TableViewのタイトルを引っ張っています。それは私が取り組んでいる問題です。私がもっと情報を提供できるかどうか聞いてください。しかしObj-Cではまだかなり新しいので、ちょっとした闘いです。 – Jake

関連する問題