如何从不同类Obj-C访问变量

时间:2016-08-31 15:11:12

标签: ios objective-c ios9

我有TableViewController&视图控制器。

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。如何让该实例访问纬度经度&来自机场类的 selectedAirportName 属性?实际上,我想知道如何公开这些属性以便在 didSelectRowAtIndexPath 实例和 Airports 类之外使用它们。

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

2 个答案:

答案 0 :(得分:1)

您应创建一个单独的对象,使用Google地图将您希望传递的数据映射到viewcontroller,也可以称之为Airport。

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

How to pass prepareForSegue: an object

答案 1 :(得分:0)

在你的ViewController.h看起来像这样:

#import <UIKit/UIKit.h>


@interface ViewController : UIViewController

@property NSNumber* airportLatitude;
@property NSNumber* airportLongitude;

@end

然后在Airports.m中,当您实例化ViewController时,可以像这样设置ViewController的值:

ViewController *view = [[ViewController alloc] init];

view.airportLatitude  = [NSNumber numberWithInt:1];
view.airportLongitude = [NSNumber numberWithInt:1];