2012-04-08 80 views
1

我想使用Storyboard中的segue(ShowADVDetail)將數據從TableViewController單元傳遞到DetailViewContoller(UITableViewController)。將數據傳遞給另一個Segue的問題DetailTableViewController

我有一個NSMutableArray'故事'包含解析的RSS提要。

我使用以下prepareForSegue,其經過的小區的「標題」值:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
     { 
      if ([segue.identifier isEqualToString:@"ShowADVDetail"]) { 

       NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
       int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1]; 
       NSString *theTitle = [[stories objectAtIndex: storyIndex] objectForKey: @"title"]; 
       [[segue destinationViewController] setDetailItem:theTitle]; 


      } 
    } 

隨着下面的行我可以通過特定的細胞的「標題」的值。

NSString *theTitle = [[stories objectAtIndex: storyIndex] objectForKey: @"title"]; 

我還可以訪問像這樣的「說明」的價值和「鏈接」值:

NSString *theDescription = [[stories objectAtIndex: storyIndex] objectForKey: @"description"]; 
NSString *theLink = [[stories objectAtIndex: storyIndex] objectForKey: @"link"]; 

但我怎麼能傳遞我賽格瑞所有3個值?

我didSelectRowAtIndexPath方法到目前爲止是這樣的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [tableView deselectRowAtIndexPath:indexPath animated:NO] 



     [self performSegueWithIdentifier:@"ShowADVDetail" sender:self]; 

} 

希望這有意義..

感謝

回答

5

我想我正確的理解你的問題。您可以通過在頭文件(detailviewcontroller)中爲要傳遞的屬性創建屬性來實現此目的。

所以你detailViewController頭看起來像:

@interface DetailListViewController : UIViewController 
    @property (strong, nonatomic) NSString *storyName; 
    @property (strong, nonatomic) NSString *storyDescription; 
    ... 
@end 

然後在你的故事板,你可以控制拖動從你的tableview到detailViewController的SEGUE。

在你tableviewcontroller導入detailViewController.h文件,並像添加代碼:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    NSIndexPath *indexPath = self.tableView.indexPathForSelectedRow; 
    [segue.destinationViewController setStoryName:###however you get name###; 
    [segue.destinationViewController setStoryDescription:###however you get desc###; 
} 

在此代碼,您可以添加「如果segue.identifier ......」

+0

大的檢查。這有幫助。 – user1297842 2012-04-10 02:16:23