如何使用故事板?

时间:2011-10-25 04:36:07

标签: iphone objective-c cocoa-touch ios5 storyboard

我正在尝试使用故事板segue而不是didSelectRowAtIndex。

这就是我所拥有的,但此方法无法识别indexPath.row。有没有其他方法可以用来做同样的事情?

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{
    SpecificExerciseTableViewController *upcomingViewController = segue.destinationViewController;
    if ([segue.identifier isEqualToString:@"Web"]) 
    {
        upcomingViewController.exerciseArray = [[self.muscleArray objectAtIndex:indexPath.row]objectForKey:@"exercises"];
        upcomingViewController.muscleName = [[self.muscleArray objectAtIndex:indexPath.row]objectForKey:@"muscleName"];
    }
}

2 个答案:

答案 0 :(得分:5)

除非您将indexPath作为ivar,否则范围内不存在此类变量。

如果您想在UITableView中获取所选行的indexPath,请使用:

- (NSIndexPath *)indexPathForSelectedRow

以上调整后的代码:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

    SpecificExerciseTableViewController *upcomingViewController = segue.destinationViewController;
    if ([segue.identifier isEqualToString:@"Web"]) 
    {
        upcomingViewController.exerciseArray = [[self.muscleArray objectAtIndex:indexPath.row]objectForKey:@"exercises"];
        upcomingViewController.muscleName = [[self.muscleArray objectAtIndex:indexPath.row]objectForKey:@"muscleName"];
    }
}

答案 1 :(得分:0)

这个技巧很好,下面是我用它将解析后的元素拉入网页视图的一个例子

.h文件

@property (strong, nonatomic) NSString *url;
@property (strong, nonatomic) UIWebView *webView;

.m文件

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
    if ([segue.identifier isEqualToString:@"WebViewSegue"]) {

        WebViewController *webViewController = segue.destinationViewController;
        webViewController.url = (self.parseResults)[indexPath.row][@"link"];
        webViewController.title = (self.parseResults)[indexPath.row][@"title"];

    }
}