2011-12-20 6 views
0

私はいくつかのセルを持つUITableViewを持っています。セルをタップすると、タップされたセルのインデックスにIndexという文字列変数を設定します。私はこれが私のUIImageViewのコントローラからのインデックスのNSLogで動作していることを確認しました。今、私がしようとしているのは、UIImageViewの画像をタップされたセルに対応する画像(つまり、各セルの異なる画像)に設定することです。私はこれ(それが動作しません)私のUIImageViewのコントローラのviewDidLoadメソッドでこのコードを使用することですやろうとしている方法:変数に応じて別の画像でUIImageViewを初期化する

if ([[TableViewController alloc] Index] isEqualToString:@"0"]) { 
    Display.image = [UIImage imageNamed:@"0.jpg"]; 
} 

"の表示は私UIImageViewの名前です。 このコードは正しいですか?もしそうなら、最初のセルをタップすると、私のUIImageViewは "0.jpg"というイメージで初期化されるようにどこに置くべきですか?

+0

を私は単に「Display.image = [UIImage imageNamed @ "0" を持っている場合、これは動作します]; 'if文なし。 –

+0

ビュー[[TableViewController alloc] Index]が何を意味するかはわかりません。私はあなたの最善の策は、これを避け、どの行がtableView didSelectRow ...メソッドから選択されたかを設定するインスタンス変数を使用することだと思います。 – Bek

答えて

0

イメージビューコントローラは、テーブルビューと同じ画面に既に表示(ロード)されていますか、またはテーブルビューの各セルタップに対して新しいイメージビューコントローラを押していますか?これは、これにアプローチする方法に大きな違いをもたらします。前者の場合は、ビューが既にロードされているため、viewDidLoadの使用は機能しません。あなたは次のように、画像を変更するためのメソッドを記述する必要があります:あなたがするたびに新しい画像ビューをプッシュしている場合は、あなたがイメージビュークラスでインスタンス変数を作成したいと思う

-(void)changeImage:(NSString *)imageName { 
    Display.image = [UIImage imageNamed:imageName]; 

と私たちはビューがロードされている方法で状況を見ることができるので、あなたのコードの多くを投稿する役に立つかもしれません

myImageView.imageName = [NSString stringWithFormat:@"%d.jpg", indexPath.row]; 
//now push your view 

:方法...あなたのテーブルビューdidSelectRowでこれを置きます。

+0

私は新しいImageViewを毎回押しています。 –

+0

それから私は間違いなく、文字列を保持するためにあなたのimageviewクラスのインスタンス変数を作るでしょう。あなたのtableviewクラスからそれを設定し、それは動作します。あなたのテーブルビュークラスへの参照を作成するだけで問題を尋ねています。 – Bek

1

if([[TableViewController alloc] Index] isEqualToString:@ "0"])は数字(Index)を文字列 "0"と比較していると思います。おそらく、それが何かは、この好きする必要があります:ところで

場合([[TableViewControllerのalloc]インデックス] == 0)

関連する問題