2014-09-27 96 views
2

我想從SportVC數據發送到CCMatchForSportTableViewController從的tableView將數據傳遞到另一個的tableView

是的,我在SportVC.h導入了目標類在頭文件

#import "CCMatchForSportTableViewController.h" 

這是方法將數據發送到第二視圖控制器

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath 
{ 
    CCMatchForSportTableViewController *matchForSport =  [[CCMatchForSportTableViewController alloc] init]; 
    matchForSport.sportSelected = [self.sport objectAtIndex:indexPath.row]; 
    [self performSegueWithIdentifier:@"SportToMatchSegue" sender:self]; 
} 

這是在頭文件屬性中CCMatchForSportTableViewController.h

@interface CCMatchForSportTableViewController : UITableViewController 

@property (strong,nonatomic) NSString *sportSelected; 

@end 

但是當我做這在CCMatchForSportTableViewController.h viewDidLoad方法,並在細胞標題(當然另一種方法):

NSLog(@"kontolasd %@", self.sportSelected); 

它說

kontolasd (null) 
+0

它是在'prepareForSegue:發件人',你必須把VC和設置線。 – Larme 2014-09-27 15:49:20

回答

0

當你請致電performSegueWithIdentifier它將從故事板加載您的視圖控制器。該方法結束後,您創建並用於matchForSport.sportSelected的那個將被釋放。您需要實施prepareForSegue方法並使用目標控制器在那裏進行分配。

0

噹噹然沒有行被選擇的視圖加載後,你需要移動didselect內該行:

- (void)tableView:(UITableView *)tableView 
         didSelectRowAtIndexPath:(NSIndexPath*)indexPath{ 
    CCMatchForSportTableViewController *matchForSport =  
            [[CCMatchForSportTableViewController alloc] init]; 
    matchForSport.sportSelected = [self.sport objectAtIndex:indexPath.row]; 
    self.sportSelected = matchForSport.sportSelected; 
    NSLog(@"kontolasd %@", self.sportSelected); 
    [self performSegueWithIdentifier:@"SportToMatchSegue" sender:self]; 
} 

這將顯示您選擇的值,然後在performSegue委託方法可以傳遞價值的下個控制器。

相關問題