gpt4 book ai didi

objective-c - 使用 segue 将数据传递到另一个 Detail TableViewController 的问题

转载 作者:行者123 更新时间:2023-12-01 18:00:54 25 4
gpt4 key购买 nike

我想在 Storyboard 中使用 segue (ShowADVDetail) 将数据从 TableViewController 单元格传递到 DetailViewContoller (UITableViewController)。

我有一个 NSMutableArray 'stories' 包含一个解析的 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"];

但是如何在我的 segue 中传递所有 3 个值?

到目前为止,我的 didSelectRowAtIndexPath 看起来像这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:NO]



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

}

希望这有意义..

谢谢

最佳答案

我想我理解你的问题是对的。您可以通过在头文件(detailviewcontroller)中为要传递的属性创建属性来实现此目的。

因此,您的 detailViewController header 将如下所示:

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

然后在你的 Storyboard中,你可以控制拖拽segue从你的tableview到detailViewController。

在您的 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...”

关于objective-c - 使用 segue 将数据传递到另一个 Detail TableViewController 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com