2014-09-27 71 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委托方法可以传递价值的下个控制器。

相关问题