2014-11-21 53 views
0

我正在構建我的第一個真正的iOS應用程序。在我的應用程序中,我使用了REFrostedViewController(https://github.com/romaonthego/REFrostedViewController),它使用三個viewcontroller構造一個滑出菜單;一個rootviewcontroller,一個homeviewcontroller和一個rootviewcontroller。發送數據到多個ViewControllers?

在rootviewcontroller之前,我創建了一個登錄屏幕。如果登錄成功,則從服務器發回令牌。該令牌對於服務器的進一步請求是必需的。該應用程序然後執行一個segue調用login_success。現在,一般情況下我該令牌發送到RootViewController的東西一起的臺詞:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"login_success"]) { 
     RootViewController *controller = (RootViewController *)segue.destinationViewController; 
     controller.xAuthToken = _xAuthToken; 
    } 
} 

但是,我不能用它來發送給多個viewcontrollers。我怎樣才能做到這一點?

+0

可以檢索回來可能是通知。 – 2014-11-21 13:06:49

+0

我會有一個負責所有網絡調用的對象,它具有令牌屬性,然後您可以傳遞網絡調用對象或使用它具有單例。另一種可能性是將令牌保存在鑰匙串或userdefault中,具體取決於令牌的批評 – 2014-11-21 13:18:45

回答

0

有很多方法可以實現這一點,你可以根據自己的需要來選擇最好的一個

方法1

你必須將根視圖控制器或任何其他視圖控制器設置爲負責的視圖控制器,然後您應該將您的對象傳遞給負責任的視圖控制器,從而可以在需要時將其傳遞給其他視圖控制器。

方法2

您可以使用NSNotificationCenter它提供了一個節目中廣播信息的機制。看看下面的鏈接,這將有助於你實現。

NSNotificationCenter example

方法3

您可以將其存儲在NSUserDefaults的,也無論你需要 看看下面的鏈接來實現這個

NSUserDefaults example

1

用於存儲認證令牌這是最好使用NSUserDefaults

下面是一個例子,你如何使用它:Example

但是NSUserDefaults的是不安全的或加密的,所以如果你想要一個安全的替代我會強烈建議您使用鑰匙串 - 這正是Facebook爲存儲會話令牌所做的。

蘋果有一些示例代碼GenericKeychain,顯示基本實現