iphone - ViewController数据共享

标签 iphone objective-c ios

所以我有两个 View Controller ,当应用程序加载时,我将它们加载到应用程序委托(delegate)上。一个是登录页面,我有用户名和密码,另一个是 UITabBarViewController。用户登录后,我只需删除登录 View ,从而显示 UITabBarViewController。问题是在我的 UITabBarViewController 中,我需要来自 ViewController 的用户名和密码。我该如何解决这个问题?

其他信息:

这基本上就是我想做的事情:

  • 应用程序以登录页面启动:用户 ID、密码和登录按钮
  • 在验证凭据后,单击登录按钮后,我们必须将用户带到下一个屏幕
  • 顶部的导航栏(本质上是 UINavigationController)
  • 表格 View
  • 底部的标签栏

现在登录后,我希望 UITabBarViewController 中的所有 ViewController 都能够获取用户在第一个登录屏幕中输入的用户名和密码。

最佳答案

我认为最好的设计是让标签栏的 Controller 呈现一个用于登录的模态视图 Controller 。 Controller 选项卡栏将成为 LoginViewController 的委托(delegate),并且 LoginViewController 将在登录完成时通知其委托(delegate)。当登录成功完成后,选项卡栏的 Controller 可以关闭 LoginViewController。

现在我在您更新答案后编写了这段代码。您可以自行了解如何添加 UINavigation 栏和表格 View 。问题是关于在 View Controller 之间传递数据,而不是我回答如何一起通过一堆 View 。如果您想了解有关将多个 View 和 Controller 组合在一起形成完整应用程序的更多信息,我强烈推荐斯坦福大学的 iTunes U 类(class)关于 iOS 编程。

我提供了一个完整、完整且有效的示例,演示如何正确使用委托(delegate)在 LoginViewController 和 UIViewController 之间共享数据(在您的情况下,UIViewController 将被标签栏 Controller 替换)。我还演示了如何使用 NSUserDefaults 保存可从应用程序其他地方访问的数据。

示例的所有代码都可以在 here 找到.

关于iphone - ViewController数据共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000023/

相关文章:

iphone - NSURL连接超时

iphone - 如何将代码从旧版本的 xcode 转移到最新版本?

iOS - Navigationcontroller 与带有导航栏的 Viewcontroller

iOS:如何在 iPad 上更改 MPMoviePlayerViewController 的方向?

iphone - UITableView图像导致崩溃

iphone - iOS 7是否支持为旧版iOS开发的应用程序

objective-c - 与另一个 Nib 中 NSArrayController 的选择绑定(bind)

iphone - 自定义 Nib UITableViewCell 高度

ios - 如何在 View 更改时保留 UITextField 文本

ios - 如何模块化监听通知的类?