0

UITableView にカスタムセルがあります。このカスタム セルには、ラベルとテキスト ボックスがあります。ユーザーがデータ (4 ~ 5 フィールド) を入力し、[保存] ボタンをクリックしたとき。彼が入力したデータを保存したい。

どうやってやるの??

最大で約5〜6個のフィールドがあります。これをどのように行うことができるかについて、いくつかの例を挙げていただければ幸いです。

4

5 に答える 5

0

1つの方法:データを辞書に保存します。

于 2013-03-06T21:40:31.787 に答える
0

あなたのコメントに従って編集してください:

このような場合、Appleはを使用することをお勧めしますDelegate-Pattern。基本的に、あなたがすることはこれです:

@protocol FirstDataVCDelegate;

@interface FirstDataVC : UIViewController

@property (weak, nonatomic) id<FirstDataVCDelegate> delegate;

//...

@end

@protocol FirstDataVCDelegate <NSObject>

- (void)firstDataVC:(FirstDataVC *)dataVC didCollectData:(NSDictionary *)data;

@end


@interface RootVC: UIViewController<FirstDataVCDelegate>

//...

@end

@implementation RootVC

- (void)firstDataVC:(FirstDataVC *)dataVC didCollectData:(NSDictionary *)data
{
    NSString *name = [data valueForKey:@"name"];
    [self.completeData setValue:name forKey:@"name"];
}

@end

この場合RootVC、データ全体を送信したいVCになります。FirstDataVCユーザーがデータを入力するVCの1つです。

ユーザー入力を取得するすべてのVCは、RootVC実装するプロトコルを提供する必要があります。

委任についてもう少し説明します

于 2013-03-06T21:44:58.160 に答える
0

保存ボタンをクリックすると、入力するデータのデータ構造を作成できます。これらの値をデータ構造に設定します また、NSMutableDictionaryキー値ストレージを使用することもできます

例: 4 つUITextFeildsの textFeild1、textFeild2、textFeild3、textFeild14 があるとします。

NSMutableDictionary *dic  = [NSMutableDictionary dictionary];
[dic addObject: textFeild1.text forValue: @"val1"];
[dic addObject: textFeild2.text forValue: @"val2"]; 
[dic addObject: textFeild3.text forValue: @"val3"];
[dic addObject: textFeild4.text forValue: @"val4"];

//Now you have the values and can retrieve them by: 
NSString *value1 = [dic  valueForKey:@"val1"];
于 2013-03-06T21:43:03.573 に答える
0

データをテーブルビューに戻そうとしていますか? その場合、情報をデータ構造に保存してから、定義されたプロトコルを使用して渡す必要があります。

于 2013-03-06T21:56:03.217 に答える
0

以下のコードで試してください:

- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
UITableViewCell *cell = [self.tabTeamDetails dequeueReusableCellWithIdentifier:@"customcellIdentifier"];

get UItextfeild and assign tag as below
   textbox.tag = indexpath.row; //used to refer particular textfiled
}

保存ボタン アクション:

NSMutableDictionary *dic  = [[NSMutableDictionary alloc] init];
//for(i=0;i<noofrowsintableview;i++){
NSString *text = (NSString *)[self.view viewWithTag:i];
[dic addObject:[NSString stringWithFormat:text] forValue: i];
}
于 2013-03-07T09:16:32.237 に答える