gpt4 book ai didi

iphone - iOS 6 将数据从 TableView 传递到 Detail View

转载 作者:行者123 更新时间:2023-11-29 03:39:15 25 4
gpt4 key购买 nike

我有一个包含一些行的表格 View ,每一行都有其详细信息披露按钮。我希望当用户点击该按钮时,会出现另一个 TableView (由 Storyboard自定义)并显示一些相关数据。

来自TableViewController.m

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {

DetailViewController *detailViewController = [[detailViewController alloc] init];
//creating a parse object
PFObject *checkin = [_dataSourceArray objectAtIndex:indexPath.row];
//getting data i want
NSString *trainNumb = [checkin objectForKey:@"trainNumber"];
//passing the data
detailViewController.trainNumber = trainNumb;
}

来自 DetailTableViewController.m

- (void)viewDidLoad {
[_trainNumberLabel setText:_trainNumber];
}

问题在于,在 DetailTableView 中,NSString 结果为空。

我在这里缺少什么?谢谢!

最佳答案

如果这段代码确实可以编译,这可能是你的问题:

DetailViewController *detailViewController = [[detailViewController alloc] init];

应该是:

DetailViewController *detailViewController = [[DetailViewController alloc] init];

但是您不应该首先分配/初始化您的 View Controller 。当您在 Interface Builder 中自定义 View Controller 时,如果您想要这些自定义,则必须像这样实例化它:

[self.storyboard instantiateViewControllerWithIdentifier:@"MyStoryboardIdentifier"]`

您必须将 Controller 的 Storyboard ID 设置为“MyStoryboardIdentifier”或您想要使用的任何标识符。

此外,正如您在评论中指出的那样,您还遇到了时间问题:您的详细 Controller 的 viewDidLoad 在您设置火车编号之前运行。更好的方法是确保它无论顺序如何都能正常工作:

- (void)updateTrainNumberLabel
{
self.trainNumberLabel.text = self.trainNumber;
}

- (void)setTrainNumber:(NSString *)trainNumber
{
_trainNumber = trainNumber;
[self updateTrainNumberLabel];
}

- (void)viewDidLoad
{
...
[self updateTrainNumberLabel];
}

换句话说,您可以在单独的方法中配置标签,在本例中为 updateTrainNumberLabel,并且当发生任何可能影响标签的事情时,例如 View 加载或数字被更改,您调用该方法。

关于iphone - iOS 6 将数据从 TableView 传递到 Detail View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685582/

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