2011-03-14 27 views
1

我仍然很難與這個數據封裝的東西...從Mainview發送數據到Flipside?

我知道Flipside的東西應該是爲設置和什麼不是,並且發送數據從flipside回到mainview很容易(對於一些)或甚至內置。有沒有關於flipside/mainview模板,使得從Mainview發送數據到Flipside很困難或不可能?

回答

2

在實用模板,該MainViewController(對正面視圖控制器)爲創建FlipsideViewController(視圖控制器背面)在showInfo:方法。您可以將任何您喜歡的數據傳遞給構造函數(當然,提供了更改構造函數以接受數據)。

或者,您可以在FlipsideViewController中定義一些屬性。在創建對象後(再次在showInfo:中),可以使用要傳遞的數據設置這些屬性。

每主編@山姆的評論:

FlipsideViewController.h,你會定義一個屬性來保存你要顯示的數據。在這裏,我將它作爲NSString,但它可以是任何東西。

@property (nonatomic, retain) NSString *someDataToShow; 

MainViewController.m,創建FlipsideViewController後,你會設置該屬性。請注意,這假定您有一個在MainViewController中定義的方法computeDataToPassToFlipside,該方法返回NSString

- (IBAction)showInfo:(id)sender 
{  
    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil]; 
    controller.delegate = self; 
    controller.someDataToShow = [self computeDataToPassToFlipside]; 
    // ... 
} 

最後,在FlipsideViewController.m你需要做的與已傳遞到屬性數據的東西。例如,假設您有一個名爲myLabelUILabel,您希望顯示NSString屬性。我將假設UILabel已正確包含並使用Interface Builder連接到IBOutlet

- (void)viewWillAppear:(BOOL)animated 
{ 
    myLabel.text = self.someDataToShow; 
} 
+0

我在概念上很糟糕。我必須看到代碼才能理解它。假設我想在主視圖中的某個方法中添加A + B = C,然後傳遞C的值以顯示在反面。我會怎麼做呢? – Sam 2011-03-14 03:37:44

+0

好吧,我在我的答案中增加了一些細節。希望能幫助到你。 – pwc 2011-03-14 04:37:42

+0

爲什麼它必須是一個函數computeDataToPassToFlipside?爲什麼我不能只是controller.someDataToShow = myFunkyString,其中myFunkyString已經被程序的其他部分確定了? – Sam 2011-03-14 22:00:52