2011-03-27 121 views
1

(對不起,從德國的英語不好,IM)如何從一個.M傳遞一個字符串到另一個.m文件

對不起,林relativ新的Xcode和也在客觀C.

我一直在尋找我的問題很久,即使在這裏,但我沒有找到答案。我相信這是很容易的,但它在我的項目不會工作:-(

的問題IST,我想兩個.m文件使用的字符串中。

例如,如果我創建一個實用的應用程序,將有一個主視圖和一個flipside視圖,它們都有一個.h文件和一個.m文件

現在我想在mainview中填充一個帶有文本字段內容的字符串,切換視圖,來自主視圖的字符串內容應顯示在翻轉視圖的文本字段中。

I已閱讀有關propertys,綜合......但我不明白這一點。 :-(

請請大家幫幫我:-(

不久:我想兩個.m文件使用一個字符串,這樣我就可以在這兩個.m文件內容,即使在這兩個廈門國際銀行工作,文件。

我希望有人能幫助我。

問候丹尼斯


#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 

現在如果我在NSString中更改@「Name」和@「Sub」,我怎麼能從主視圖控制器傳遞一個值?

回答

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改變時讓另一側控制器發送消息。

+0

謝謝,但是這兩個xib只是一個例子來理解我的意思......我想我會發布代碼......只需一秒 – Dennis 2011-03-27 18:31:53

+0

這很好,那只是一個例子;答案仍然成立。你有兩個或更多的對象。如果對象互相引用,他們可以發送消息並傳遞數據。主要的訣竅是組織這一點,以免混亂。如果你有很多數據,不僅僅是示例中的字符串,還可以考慮將其全部存儲在數據模型中並傳遞該數據模型。 – Caleb 2011-03-27 18:41:32

相關問題