This question already has answers here:
How to pass prepareForSegue: an object

(10个答案)



Passing Data between View Controllers

(46个答案)


4年前关闭。




我有TableViewController和ViewController。

Airports.h
@interface Airports : UITableViewController

@property(strong, nonatomic) NSNumber* latitude;
@property(strong, nonatomic) NSNumber* longitude;
@property(strong, nonatomic) NSString* selectedAirportName;

@end

Airports.m

这是一个设置纬度,经度和selectedAirportName属性的实例。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSArray *airportNames = airportsArray[indexPath.row];
    self.selectedAirportName = [airportNames valueForKey:@"$"];
    NSArray *airportCoordinates = airportsCoordinates[indexPath.row];
    self.latitude = [airportCoordinates valueForKey:@"Latitude"];
    self.longitude = [airportCoordinates valueForKey:@"Longitude"];
}

行选择将用户转发到ViewController,在这里我有一个实例,该实例根据选定行中的信息显示带有标记的GoogleMap。如何授予该实例访问Airports类中的纬度,经度和selectedAirportName属性的权限?实际上,我想知道如何使属性公开,以便在didSelectRowAtIndexPath实例和Airports类之外对其进行操作。

我只是一个初学者。所以不要开枪打我:)

最佳答案

您应该创建一个单独的对象,该对象使用google map映射您希望传递给viewcontroller的数据,也许将其称为Airport。

然后,当您从第一个视图控制器(机场)中推送segue时,可以使用prepareforsegue方法将该对象传递给视图控制器。

How to pass prepareForSegue: an object

10-08 02:22