如何将String从一个.m传递到另一个.m文件

时间:2011-03-27 18:04:22

标签: objective-c string properties

(抱歉英语不好,我来自德国)

对不起,我在XCode以及目标C中都是新的。

我一直在寻找我的问题,即使在这里,但我没有找到答案。我相信它很容易,但它在我的项目中不起作用: - (

问题是,我想在两个.m文件中使用字符串。

例如,如果我创建一个实用程序应用程序。将有主视图和侧视图。两者都有一个.h文件和一个.m文件。

现在我想在主视图中使用文本字段的内容填充字符串,如果我切换视图,主视图中字符串的内容应该显示在翻转视图的文本字段中。

我读过有关物业,合成......但我不明白。 : - (

请帮帮我: - (

很简单:我想在两个.m文件中使用一个String,因此我可以使用.m文件中的内容,甚至两个xib文件中的内容。

我希望有人可以帮助我。

问丹尼斯


#import "MainViewController.h"
#import "MyFirstAnnotation.h"


@implementation MainViewController


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
}

- (IBAction)annosetzen:(id)sender{
    CLLocationCoordinate2D coor;
    coor.latitude = 54.3327162876622;
    coor.longitude = 10.1518177986145;

    MKCoordinateSpan span;
    span.latitudeDelta = 0.01;
    span.longitudeDelta = 0.01;
    MKCoordinateRegion region;

    region.center = coor; 
    region.span = span; 

    MyFirstAnnotation *anno = [[MyFirstAnnotation alloc] init]; 
    [mapView addAnnotation:anno];

    [mapView setRegion:region animated:TRUE];

    //MKReverseGeocoder *revGeo = [[MKReverseGeocoder alloc] initWithCoordinate:coor];
    //revGeo.delegate = self; 
    //[revGeo start];   
}

#import "MyFirstAnnotation.h"

@implementation MyFirstAnnotation
- (CLLocationCoordinate2D)coordinate { 
    CLLocationCoordinate2D coor; 
    coor.latitude = 54.3327162876622; 
    coor.longitude = 10.1518177986145; 
    return coor;
}
- (NSString *)title {
    return @"Name";        //This should be set from main view controller
}
- (NSString *)subtitle {
    return @"Sub";         //This also
}
@end

现在,如果我在NSStrings中更改@“Name”和@“Sub”,我怎样才能从主视图控制器传递一个值?

1 个答案:

答案 0 :(得分:1)

当您的MainViewController创建FlipSideViewController时,它可以为其提供相关字符串。如果您的FlipSideViewController和MainViewController都具有someString属性,请在MainViewController中执行此操作:

self.flipSideViewController = [[FlipSideViewController alloc] initWithNibName:nil bundle:nil];
flipSideViewController.someString = self.someString;
[self.navigationController pushViewController:flipSideViewController animated:YES];

然后,当您的主视图控制器即将再次可见时(例如在其-viewWillAppear中):

if (self.flipSideViewController) {
    self.someString = self.flipSideViewController.someString;
    self.flipSideViewController = nil;
}

当然,这只是一种方法。另一种方法是使主控制器成为翻转侧控制器的代表,并让翻转侧控制器在someString改变时向其发送消息。