2012-01-26 11 views
0

次のコードでは、View Controllerにデータを送信し、View Controllerは送信するID変数に基づいて別のデータセットを取得します。変数をTabviewControllerに渡すには?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSDictionary *dict = [rows objectAtIndex: indexPath.row]; 

    ListingsViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"tabView"]; 

     controller.SUBSUBCATNAME = [dict objectForKey:@"S_NAME_EN"]; 

    controller.SUBSUBCATNUMBER = [dict objectForKey:@"SUBCAT_ID"]; 
    [self.navigationController pushViewController:controller animated:YES]; 

} 

次のビューは、国のホテルをリストする別のテーブルを読み込みます。私がやりたいことは、タブの助けを借りてホテルを挟んでフィルターをかけることです。たとえば、最初のタブはすべてのホテルを表示し、2番目のタブは1つの地域のホテルを表示し、3番目のタブは別の地域を表示します。私はそのIDのカテゴリ内のすべてのリストを示しています私のビューコントローラをロードtabbarcontrollerにこのIDを送信することができますどのように

'NSInvalidArgumentException', reason: '-[tabView setSUBSUBCATNUMBER:]: unrecognized selector sent to instance 

:私はtabbarcontrollerにSUBSUBCATNUMBERを送信するときに私の問題がある

は、それがエラーをスローします。

答えて

2

あなたは命名規則を破っているので、それは失敗しています。 ivarの名前は小文字で始まるので、subSubCatNumber、または小文字で始まる他の名前を指定する必要があります。上記のようにSUBSUBCATNUMBERを変更するか、必要に応じてsUBSUBCATNUMBERを変更しますが、最初の文字は小文字にします。明示的にsetSUBSUBCATNUMBERをどこかで呼び出すだけで大文字にしておいてください。

+0

オーウェンありがとうございます。どうやらそれは大文字小文字の問題でした。私はそれを小文字にしたので、エラーはなくなりました。しかし、変数はtabviewcontrollerの初期ビューコントローラに渡されません。この問題を克服するために文法的にtabviewcontrollerを作成する必要があると思いますか? –

+0

あなたは@propertyを使用していますか?あなたは持っている必要があります:@プロパティ(非原子、保持)NSString * subSubCatNumber; ARCを使用していない場合は、ListingsViewControllerコードの適切な場所に@ subSubCatNumberを合成し、deallocにself.subSubCatNumber = nilを付けます。あなたは@propertyを使い慣れていない場合は、@ propertyの使用法を読んでください。 –