(抱歉英语不好,我来自德国)
对不起,我在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”,我怎样才能从主视图控制器传递一个值?
答案 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改变时向其发送消息。