我仍然很難與這個數據封裝的東西...從Mainview發送數據到Flipside?
我知道Flipside的東西應該是爲設置和什麼不是,並且發送數據從flipside回到mainview很容易(對於一些)或甚至內置。有沒有關於flipside/mainview模板,使得從Mainview發送數據到Flipside很困難或不可能?
我仍然很難與這個數據封裝的東西...從Mainview發送數據到Flipside?
我知道Flipside的東西應該是爲設置和什麼不是,並且發送數據從flipside回到mainview很容易(對於一些)或甚至內置。有沒有關於flipside/mainview模板,使得從Mainview發送數據到Flipside很困難或不可能?
在實用模板,該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
你需要做的與已傳遞到屬性數據的東西。例如,假設您有一個名爲myLabel
的UILabel
,您希望顯示NSString
屬性。我將假設UILabel已正確包含並使用Interface Builder連接到IBOutlet
。
- (void)viewWillAppear:(BOOL)animated
{
myLabel.text = self.someDataToShow;
}
我在概念上很糟糕。我必須看到代碼才能理解它。假設我想在主視圖中的某個方法中添加A + B = C,然後傳遞C的值以顯示在反面。我會怎麼做呢? – Sam 2011-03-14 03:37:44
好吧,我在我的答案中增加了一些細節。希望能幫助到你。 – pwc 2011-03-14 04:37:42
爲什麼它必須是一個函數computeDataToPassToFlipside?爲什麼我不能只是controller.someDataToShow = myFunkyString,其中myFunkyString已經被程序的其他部分確定了? – Sam 2011-03-14 22:00:52