我遇到了prepareforsegue风格的问题。我是,正如您所知道的,我的问题对Xcode来说还很陌生,但我做错了:

我有一个LAFirstView从解析中读取数据,并将其保存在名为“ kundUppgifter”的数组中。

现在,我需要将一个文本从objectatindex:index发送到下一个称为
LASecondView。
在LASecondView中,我声明了一个名为myLabel的标签,我希望在其中显示文本。

我在Stackoverflow上已经阅读过有关此问题的信息,但是问题是,当我阅读其他人的答案时,我不知道该用什么来代替。我在LAFirstView中的代码:看起来像这样,当然它不起作用,但是我确实从NSLog中得到了正确的东西。
希望获得帮助:

//IMPLEMENT THIS ONE (WHEN DISCLOSURE BUTTON IS PRESSED):
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view  calloutAccessoryControlTapped:(UIControl *)control{

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

NSUInteger index = [mapView.annotations indexOfObject:view.annotation];
PFObject *tempObject = [kundUppgifter objectAtIndex:index];
NSLog(@"%lu", (unsigned long)index);
NSLog(@"%@", [tempObject objectForKey:@"CNAME"]);

}

最佳答案

因此,您的问题是它没有将字符串从LAFirstView传递到LASecondView,但是日志正确吗?如果是这样,您可以在LAFirstView上声明一个字符串属性:

@property (strong, nonatomic) NSString* stringToPass;


然后在披露按钮上单击:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view  calloutAccessoryControlTapped:(UIControl *)control {

NSUInteger index = [mapView.annotations indexOfObject:view.annotation];
PFObject *tempObject = [kundUppgifter objectAtIndex:index];
NSLog(@"%lu", (unsigned long)index);
NSLog(@"%@", [tempObject objectForKey:@"CNAME"]);

self.stringToPass = [tempObject objectForKey:@"CNAME"];

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

}


并准备进行:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"openingHours"]) {
        LASecondView *secondView = (LASecondView *)segue.destinationViewController;
        secondView.labelToUpdate.text = self.stringToPass;
    }
}

关于ios - 准备好进行搜索-只是不要正确选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26091349/

10-16 14:08