2012-03-27 6 views
-2

uitableviewsから詳細ビューにオブジェクトを渡すにはどうすればよいですか?私はあなたが私の方法で見ることができるよう、条件付きのプッシュを設定している:didSelectRowAtIndexPathを使用してオブジェクトを渡す:

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

    Budget * tempBudget = [self.budgetPlan.budgets objectAtIndex:indexPath.row]; 

    NSString *targetViewControllerIdentifier = nil; 
    if (tempBudget.hasBeenInitialized != true) { 
     targetViewControllerIdentifier = @"budgetInitializerView"; 
     UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:targetViewControllerIdentifier]; 
     [self.navigationController pushViewController:vc animated:YES]; 

     // how do I pass the tempBudget to the pushed view? 


    } else { 
     targetViewControllerIdentifier = @"budgetDetailsView"; 
     UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:targetViewControllerIdentifier]; 
     [self.navigationController pushViewController:vc animated:YES]; 

     // how do I pass the tempBudget to the pushed view? 

    } 
} 

私は通常UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:targetViewControllerIdentifier];

とのトラブルを抱えている、私は答えとして vc.budget = tempbudgetを設定以下に示唆しているが、予算財産を理解していないようだ。

+0

プッシュする前に

vc.budget = tempBudget; [self.navigationController pushViewController:vc animated:YES]; 

は、予算の所有権を設定することができますあなたは「予算財産を理解していないようだ」と精緻化していますか?コンパイラの警告?クラッシュ?新しいビューには何も表示されませんか? –

+0

新しいビューには何も表示されません。それは渡されていないようです。 – iggy2012

答えて

1

@propertyのオブジェクトを持つBaseViewControllerを作成し、その方法でオブジェクトを送信します。

// In your .h 
BaseViewController : UIViewController { 
} 

@property (nonatomic, strong) Budget *budget; 

//In your .m 
@synthesize budget; 

また、あなたはそれは同じことですので、あなたの他に/ if文のうち、この行を移動することができます:あなたはあなたのビューコントローラが

+0

vc.Budget = tempBudgetを実行しても何らかの理由でデータが引き継がれているようには見えません。 – iggy2012

+0

また、vc.budget = tempBudgetをローカル変数として移動することはできません。 – iggy2012

+0

Classでプロパティを作成した場合は、ローカル変数を渡すことができます。 –

関連する問題