从的tableView将数据传递到另一个的tableView
问题描述:
我想从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)
答
当你请致电performSegueWithIdentifier
它将从故事板加载您的视图控制器。该方法结束后,您创建并用于matchForSport.sportSelected
的那个将被释放。您需要实施prepareForSegue
方法并使用目标控制器在那里进行分配。
答
当当然没有行被选择的视图加载后,你需要移动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
委托方法可以传递价值的下个控制器。
它是在'prepareForSegue:发件人',你必须把VC和设置线。 – Larme 2014-09-27 15:49:20