2012-01-07 7 views
0

はVIEW1に投稿された、私のコードです:-prepareForSegueでどのようにプロパティを使用しますか?ここ

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // Make sure your segue name in storyboard is the same as this line 
    if ([segue.identifier isEqualToString:@"toLevels"]) 
    { 
     levelViewController *vc = [segue destinationViewController]; 

     vc.currentEnchantmentSelected = self.title; 
    } 
} 

これは「levelViewController」内の変数に「self.title」の値を送信しません。どうしてこれなの?それは私が文字列を使用する場合、それを送信します。

編集(levelViewController):

@synthesize enchantment = _enchantment; 
- (enchantmentViewController *)enchantment 
{ 
    if (!_enchantment){ 
     _enchantment = [[enchantmentViewController alloc] init]; 
    } 
    return _enchantment; 
} 

@property enchantmentは、ヘッダの中で宣言されます。

+1

「文字列を使用すると送信します」という意味はどうですか?あなたがしていた作業をコードで表示できますか? 'currentEnchantmentSelected'はビューですか? –

+0

@FirozeLafeer 'self.title'を' @ "ランダムテキスト" 'に変更すると、levelViewControllerをコード化してタイトルが' vc.currentEnchantmentSelected'に変わります。 'currentEnchantmentSelected'は' levelViewController'のプロパティです。したがって、文字列を使用するとタイトルが変更されますが、プロパティを使用すると変更されません。私はこれを他の多くのプロパティで試してみましたが、 'levelViewController'のタイトルには何も表示されません。 – blake305

+1

ok、self.titleがnilでないことを確認しましたか?そして、あなたは 'currentEnchantmentSelected'の宣言を表示できますか? –

答えて

1

だからチャットから、問題は、あなたが実際に絵コンテとprepareForSegue:sender:と呼ばれる、didSelectRowAtIndexPath:でこのプロパティを設定したということでした。 (セグがテーブル内のセルに貼り付けられている場合)

代わりに、代わりにprepareForSegue:sender:で直接その作業を行うだけです。 senderはタップされたセルになります。また、そのセルにindexPathが必要な場合は、次のものを使用できます。

[self.tableView indexPathForSelectedRow] 

アプリで幸運を祈ってください。

+0

ありがとう!あなたはたくさんの助けになりました! – blake305