所以我有两个 View Controller ,当应用加载时我会在应用委托(delegate)上加载它们。一个用于登录页面,其中我有用户名和密码,另一个是 UITabBarViewController。用户登录后,我只是删除了登录 View ,因此显示了 UITabBarViewController。问题是在我的 UITabBarViewController 中,我需要 ViewController 的用户名和密码。我该如何解决这个问题?
附加信息:
这基本上是我想做的:
- 应用程序以登录页面开始:用户 ID、密码和登录按钮
- 点击登录按钮,验证凭据后,我们必须将用户带到下一个屏幕
- 顶部的导航栏(本质上是 UINavigationController)
- 表格 View
- 底部的标签栏
现在登录后,我希望 UITabBarViewController 中的所有 ViewController 都能够获取用户在第一个登录屏幕中输入的用户名和密码。
Best Answer-推荐答案 strong>
我认为最好的设计是让标签栏的 Controller 呈现一个用于登录的模态视图 Controller 。然后, Controller 选项卡栏将成为 LoginViewController 的委托(delegate),并且 LoginViewController 将在登录完成时通知其委托(delegate)。当登录成功完成后,标签栏的 Controller 可以关闭 LoginViewController。
现在我在您更新答案后编写了此代码。您可以弄清楚如何自己添加 UINavigation 栏和表格 View 。问题是关于在 View Controller 之间传递数据而不是我回答如何一起通过一堆 View 。如果您想了解更多关于将多个 View 和 Controller 组合在一起以形成一个完整的应用程序的信息,我强烈推荐斯坦福大学的 iTunes U 类(class)。
我提供了一个完整、完整且有效的示例,演示了如何正确使用委托(delegate)在 LoginViewController 和 UIViewController 之间共享数据(在您的情况下,UIViewController 将被您的标签栏 Controller 替换)。我还演示了如何使用 NSUserDefaults 来保存可以从其他地方访问的数据是应用程序。
示例的所有代码都可以找到here .
关于iphone - ViewController 数据共享,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/5000023/
|