2012-01-05 7 views
2

私はゲームのレシピリストを作成しようとしている小さなプロジェクトを持っています。私は私のUITableViewが素晴らしい実行している - 唯一の問題は、どのようにDetailViewと各セルを接続するのか分からないということです。現在、いずれかのセルを選択すると、選択アニメーションが実行され、どこにも行きません。テーブルリストから異なるデータを使用して同じUIVewをロードする方法は?

これに最も近い方法は、最新のiOS5 SDK & Xcode 4.2を使用する方法もわかりません。私はストーリーボードにほとんど慣れていませんが、レシピごとに40種類のDetailViewを作成するより簡単な方法が必要であると想定しています。

私は、新しいRecipe.h/Recipe.mオブジェクトセットを作成し、その中のすべてのデータを保持したいと考えました。その後、同じDetailViewテンプレートにロードすることができますが、選択されたレシピに応じて情報が変わります。私はこれが意味をなさないと思いますか?

私は何かを明確にすることができたら教えてください。これが助けになるなら、私はmy project source codeを添付しました...あらかじめありがとう!

答えて

2

まず第一に、あなたのMasterViewController.mに、コードのこの部分を追加し、

#import "DetailViewController.h" 

その後、次の手順を実行し、その後、あなたのMainStoryboard.storyboardを開きます。

  1. MasterViewでテーブルビューにUITableViewCellを追加。
  2. セルの「インスペクタ」でスタイルを「基本」として選択し、その識別子を「セル」として指定します。
  3. セルをクリックしてDetailViewまで線をドラッグし、Pushオプションを選択します。ストーリーボードのセグを見ることができるはずです。その識別子を "showDetail"とします。
  4. は、その後、あなたがすでに

    のUITableViewCell *セル= [のtableView dequeueReusableCellWithIdentifier:CellIdentifier]からセルを取得しているためですMasterViewController.mに行くとcellForRowAtIndexPath:

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    に次のコードをコメント。

  5. はその後MasterViewController.m

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    { 
        if ([segue.identifier isEqualToString:@"showDetail"]) 
        { 
        DetailViewController *dvc = segue.destinationViewController; 
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
        [dvc setDetailItem:[self.harvestRecipeList objectAtIndex:indexPath.row]]; 
        } 
    } 
    

ビルドして実行に次のコードを追加します。あなたは行かなくてはなりません。

+0

@Jake、あなたは正しくセグを設定していないようです。 – Ilanchezhian

+0

いいえキャッチと良い解決策 – Ilanchezhian

+0

ありがとうございます@Aadhira :) – nithinbhaktha

関連する問題