2013-02-23 118 views
0

我试图穿过这个代码塞格斯传递数据:准备Segue公司通数据选择

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
if ([segue.identifier isEqualToString:@"exerciseDetailDescription"]) { 
    SoulExerciseDetailQuarViewController *destination = segue.destinationViewController; 
    if ([destination respondsToSelector:@selector(setOverview:)]) { 
     NSDictionary *overview = @{@"name" : [_exercise objectForKey:@"name"], @"longDescription" : [_exercise objectForKey:@"longDescription"]}; 
     [destination setValue:overview forKey:@"overview"]; 

    } 
} 
else if ([segue.identifier isEqualToString:@"exerciseDetailGear"]) { 
    SoulExerciseDetailTriaViewController *destination = segue.destinationViewController; 
    if ([destination respondsToSelector:@selector(setSelectedGearString:)]) { 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
     NSString *selectedGearString = cell.detailTextLabel.text; 
     [destination setValue:selectedGearString forKey:@"selectedGearString"]; 

    } 
} 
else if ([segue.identifier isEqualToString:@"exerciseDetailCategory"]) { 
    SoulExerciseDetailDuaViewController *destination = segue.destinationViewController; 
    if ([destination respondsToSelector:@selector(setSelectedCategoryString:)]) { 
     NSLog(@"Go"); 
     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
     NSString *selectedCategoryString = cell.detailTextLabel.text; 

     [destination setValue:selectedCategoryString forKey:@"selectedCategoryString"]; 

    } 
}} 

所以,如果响应是在SEGUE的目的地发现二传手它允许数据的传输。

奇怪的是,第一个正确,但在第二和第三响应,它说,目的地视图控制器不响应这些设定器

例如在第三中未示出的NSLog。从先前的评论

+0

它说导航控制器 – 2013-02-23 00:32:42

+0

之间的类开始segue和它到达的类有一个导航控制器导航栏,因为它的模态segue导航栏到目的地。我试图设置目的地作为导航控制器,并得到它的根视图控制器,但它不允许。 – 2013-02-23 00:41:38

+0

没关系,做到了。我如何接受你的回答? – 2013-02-23 00:49:37

回答

1

答:

NSLog的目标类:

NSLog(@"class name: %@", NSStringFromClass([destination class])); 

我敢打赌,该类是不是你的想法。

OP:“它说导航控制器”

这不是你所期待的,对吗?所以找出为什么错误的东西正在被实例化。

+0

谢谢。在我的情况下,我忘了将该类从默认UIViewController更改为我的扩展视图控制器。 – 2013-03-18 07:39:49