将数据发送到多个ViewControllers?

时间:2014-11-21 13:00:22

标签: ios objective-c xcode

我正在构建我的第一个真正的iOS应用程序。在我的应用程序中,我使用了REFrostedViewController(https://github.com/romaonthego/REFrostedViewController),它使用三个视图控制器来构建一个滑出菜单; rootviewcontroller,homeviewcontroller和rootviewcontroller。

在rootviewcontroller之前,我已经创建了一个登录屏幕。如果登录成功,则从服务器发回令牌。进一步请求服务器需要此令牌。然后,该应用会执行名为segue的{​​{1}}。现在,通常我会将令牌发送到rootviewcontroller,其中包含以下内容:

login_success

但是,我无法使用此功能将其发送给多个viewcontrollers。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

要存储您的身份验证令牌,最好使用NSUserDefaults

以下是如何使用它的示例:Example

然而,NSUserDefaults不安全或加密,所以如果你想要一个安全的替代方案,我强烈建议你使用钥匙串 - 这正是Facebook为存储他们的会话令牌所做的。

Apple有一些示例代码GenericKeychain,它显示了基本的实现

答案 1 :(得分:0)

有很多方法可以实现这一点,你必须根据自己的需要选择更好的方法

方法1

您必须将根视图控制器或任何其他视图控制器设置为负责的视图控制器,然后您可以将对象传递给负责的视图控制器,您可以根据需要将其传递给其他视图控制器。

方法2

您可以使用NSNotificationCenter,它提供了在程序中广播信息的机制。请看下面的链接,它将帮助您实施。

NSNotificationCenter example

方法3

您可以将其存储在NSUserDefaults中,也可以在任何需要的地方将其恢复 看下面的链接来实现这个

NSUserDefaults example