2011-08-17 12 views
0

UIlabelとUITextFieldを持つカスタムUITableViewCellを作成しました。UITableFieldテキストをUITableViewから取得

私はカスタムテーブルをロードして表示し、私のfirstViewControllerで

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *CellIdentifier = @"Cell"; 

    LoginTableCell *cell = (LoginTableCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"LoginTableCell" owner:nil options:nil]; 

     for (id currentObject in topLevelObjects) { 
      if ([currentObject isKindOfClass:[UITableViewCell class]]) { 
       cell = (LoginTableCell *) currentObject; 
       break; 
      } 
     }  
    } 

次に、ユーザが、私はそこからUITextField.text値を取得し、文字列にそれを保存したい「ログイン」当たったとき。

- (IBAction)login:(id)sender { 

これは簡単なことかもしれませんが、私はこれに固執しており、解決する正しい答えを見つけることができないようです。

私はこのような何かを考えていた:サムは

request for member 'text' in something not a structure or union 

任意の助けを感謝

おかげ

NSString *user = LoginTableCell.loginTextField.text; 

が、これは誤差を返します
+0

LoginTableCell.loginTextField.textの代わりに、オブジェクト名を使用します。例えば。 currentObject.loginTextField.text – mayuur

答えて

1

一般的に、このようにすることができます。次のコードのindexPathが、必要なtextFieldを持つ行の正しいindexPathであることを確認してください。テーブルビューのdidSelectRowAtIndexPathのデリゲート

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
LoginTableCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
NSString *user = cell.loginTextField.text; 
0

、あなたはテキストフィールドにある何のための変数を宣言する必要があり、uは@propertyの@synthesisを設定することにより、あなたが好きな場所でそれを宣言し、グローバルvariable.thenとしてこの文字列を使用する必要がありますあなたのtextfield.text = your-stringを設定することで、この文字列を使用して、どこにでも表示したいことができます。

+0

okですが、すでにUITextFieldにテキストがあり、ユーザーがログインボタンを押す前にそのセルを選択しないとどうなりますか? –

+0

あなたの答えは、文字列を保存できるように各セルを選択しているユーザーに依存しているように見えます。それは問題を引き起こす可能性があります、私はユーザーがそのtableviewcellを選択するかどうかにかかわらず、uitextfieldからの文字列を保存したい –

+0

ユーザーがログインボタンをタップするとuitextfiledから文字列を保存したいだけですか? uitextフィールドからこの文字列を保存する。 –

関連する問題