2013-01-03 120 views
2

請幫我之間發送數據..如何視圖控制器故事板的Xcode

我想不同的控制器之間的數據傳遞的故事板。 例如。

第一個視圖控制器

NSString *firstValue; 

firstValue = @"First Number"; 

現在我想在

NSString *resultFromFirstVC; 

發送這結果視圖控制器和存儲並顯示在標籤。

[label setText: resultFromFirstVC]; 

所以標籤顯示:

第一個號碼

Xcode StoryBoard

回答

5

使用此方法來傳遞的屬性在所有視圖控制器

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"ShowNewVC"]) { 
     NextViewController *nextVC = (NextViewController *)[segue destinationViewController]; 
     nextVC.someProperty = self.myProperty; 
    } 
} 

更改「NextViewController」的名稱以匹配您的名稱。 一定要在Storyboard文件中添加「Segue標識符」。

這應該工作。但是,如果必須通過此屬性才能傳遞如此多的視圖控制器,則可以考慮創建一個Singleton「Data Manager」對象來存儲數據。視圖控制器可以通過單例訪問數據。

祝你好運!

+0

我使用[Segue destinationViewController],但似乎prepareSegue()允許添加數據並隨後移動到相鄰視圖(即查看三個視圖兩個)。您是否有任何示例項目或鏈接使用Singletion「數據管理器」來理解和獲取命令。 – user777304

+2

是的。這是一個很好的教程/指南http://www.galloway.me.uk/tutorials/singleton-classes/ –

+1

創建一個單身人士。應該使用示例中的「someProperty」來存儲您需要傳遞的字符串。在第一個視圖控制器中,你應該使用類似[[MyManager sharedManager] setSomeProperty:firstValue];並且在第四個視圖控制器中使用NSString * theString = [[MyManager sharedManager] someProperty]; –

相關問題