gpt4 book ai didi

ios - prepareForSegue 没有设置 UILabel

转载 作者:行者123 更新时间:2023-12-01 17:30:06 25 4
gpt4 key购买 nike

我有一个 prepareForSegue方法设置将我想要的所有内容发送到 destinationViewController除了 UILabel 的值在 destinationVC .我扔了一个 NSLog 语句,看看它打印了什么值,它打印了我想要的东西。

它不会崩溃,但不会设置。 我知道我在这里遗漏了一些非常基本的东西,但它并没有在我身上跳出来。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton *)sender {
if ([[segue identifier] isEqualToString:@"directionsSegue"]) {
// Set destination view controller
DirectionsViewController *destinationVC = segue.destinationViewController;

// Pick out the "thing" you want to send to destinationVC
CGPoint point = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:point];

// Set the "thing" on the destinationVC
PointOfInterest *poi = [self.fetchedResultsController objectAtIndexPath:indexPath];
destinationVC.destinationLabel.text = poi.name;
NSLog(@"destinationVC.destinationLabel.text = %@", poi.name);
destinationVC.destinationLatitude = poi.latitude;
destinationVC.destinationLongitude = poi.longitude;

}
}

我的属性在我的destinationVC 的标题中声明:
@property (strong, nonatomic) IBOutlet UILabel *destinationLabel;

以下答案的解决方案:

谜团已揭开!这是我所做的:

在我的destinationVC上,我将其添加到我的标题中:
@property (nonatomic, strong) NSString *destinationName;

我把它放回了实现中:
@property (strong, nonatomic) IBOutlet UILabel *destinationLabel;

destinationVC ,我将此添加到我的 viewDidLoad :
self.destinationLabel.text = self.destinationName;

最佳答案

您的标签将在 prepareForSegue 中为零因为此时它不会被实例化。事实上,一旦你的 View 被加载,IBOutlet 就会被初始化。这就是为什么它不起作用。

解决您的问题的最佳方法是在您的 DirectionsViewController 中创建另一个属性。您的文本将存储在哪里。这个在你的 Controller 初始化后直接可用,然后你可以直接在你的 Controller 中的任何地方设置你的标签。

关于ios - prepareForSegue 没有设置 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29239648/

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