2

RootCtrl と DetailCtrl があります。RootCtrl には、uiTableview があります。この関数を使用して、選択の結果を書き込みます。

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSLog(@"%@",cell.textLabel.text);

didSelectRowAtIndexPath。UILabel の NSLog 結果を Detailctrl に表示したいので、別のビュー。どうすればできますか?

4

3 に答える 3

1

に以下のコードを入力しますRootViewController

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSString*yourStringNameHere = [NSString stringWithFormat:@"%@",cell.textLabel.text];
NSLog(@"%@",yourStringNameHere);//this isn't used in retreiving the info
NSNumber *number = [NSNumber numberWithInt:1];
NSDictionary *yourDictionaryNameHere = [NSDictionary dictionaryWithObjectsAndKeys:
                    yourStringNameHere, @"yourStringNameHereDictionary",nil];

に以下のコードを入力しますDetailViewController

ヘッダーファイル(.h)に入れます

IBOutlet UILabel *yourLabelNameHere; 

メインファイル(.m)で使用

yourLabelNameHere.text= [yourDictionaryNameHere objectForKey:(@"yourStringNameHereDictionary")];

ノート:

  • 辞書にアクセスできない場合は、 #import "RootViewController.h" を置きます
  • NSDictionaryを使用して iPhone メモリにデータを保存します。これにより、他のクラスからのデータを使用できます。それ以外の場合は #import を使用するだけで、変数の初期化からデータを受け取るだけです。
  • キーから NSDictionary から文字列を受け取る
  • DetailViewController.hストーリーボードまたは xib ファイルに出力するUILabel を設定します
  • トランジションの開始時にラベルをロードするには、ディクショナリ レシーバーを配置するViewDidLoadか、メソッド (-(void)function)によって呼び出されます)ViewDidLoad
于 2012-09-23T22:06:34.273 に答える
0

まず、NSLogの出力を忘れてください。NSLogはNSLogです。それは別のことです。本当に必要なのは、セルのテキストを取得してどこかに保存し、別のクラスで取得して表示することです。したがって、私が行うことは、didselectrowatindexpathに新しく選択されたセルテキストを格納するextern変数(NSString)を作成し、Detailctrlでそれにアクセスすることです。

誰もがこのようにするかどうかはわかりませんが、それが私が行う方法であり、機能するはずです。

于 2012-09-23T23:27:36.627 に答える
0

クラスに a を設定する必要があり@property UILabel* myLabelますDetailCtrl。次に、使用します

MyDetailCtrlInstance.myLabel.text = cell.textLabel.text
于 2012-09-23T20:40:41.963 に答える