2012-03-10 10 views
0

UITableViewのいくつかの行をタップすると、新しい画面に移動します。私は例えばこの画面のUIImageViewの画像は開いていますが、そこにNSStringも置き換えられません。理由を知らない。このNSStringは、screenViewクラスのファイル.hで@property(nonatomic、retain)を持つNSStringとして定義されています。データで新しいビューを読み込む - NSStringを置換しません

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

[self.navigationController pushViewController:self.screenView animated:YES]; 

self.screenView.title = @"Screen Name"; 
self.screenView.imageView.image = MyImage; // this work 
self.screenView.MyString = @"Work?"; // but this not 
} 

NSStringの新しい値を属性にしたくないのはなぜですか?イメージをこのように置き換えることはできますか?

+0

は、コンパイラはあなたにエラーを与えています(その場合には、エラーは何ですか?)か、実行時の問題のいくつかの種類ですか? –

+0

いいえ、エラーはありません。私がscreenViewクラスの文字列値でNSLogを呼び出すと、(null)が表示されます。 –

+0

関連定義/合成とNSLog行を表示できますか?画面ビューで –

答えて

1

をお試しください。

私は、ビューは、あなたがプッシュした後、それを設定しているので、それは価値が含まれていないことを意味し、表示またはロードされているとき、あなたはこれをやっていると仮定します。

私は試してみることをお勧め:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    self.screenView.title = @"Screen Name"; 
    self.screenView.imageView.image = MyImage; // this work 
    self.screenView.MyString = @"Work?"; // but this not 

    [self.navigationController pushViewController:self.screenView animated:YES]; 
} 
+0

正しい。そうだった。あなたが書いたまで私はそれを発見しましたが、感謝します。私はviewDidLoadでMyStringを愛していたので、データはまだ置き換えられませんでした。それはviewDidAppearで愛されるべきです。 –

0

はあなたのMyStringをログに記録しないどの方法で

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

[self.navigationController pushViewController:self.screenView animated:YES]; 

self.screenView.title = @"Screen Name"; 
self.screenView.imageView.image = MyImage; // this work 
self.screenView.MyString = [[NSString alloc]initWithString:@"Work?"]; 
//self.screenView.MyString = @"Work?"; // but this not 
} 
+0

残念ながらまだ動作せず、私は "(null)"を取得します。 –

関連する問題