xcode - iOS 标签栏 Controller 中的动态数据

标签 xcode ios authentication tabbar

我在应用程序中使用标签栏 Controller ,但当应用程序首次启动时,我在 Controller 顶部加载登录屏幕:

initialScreenViewController = [[Login alloc] init];
[window addSubview:tabBarController.view];
[window addSubview:initialScreenViewController.view];
[window makeKeyAndVisible];
return YES;

当用户成功通过身份验证时,我删除登录 View :

[self.view removeFromSuperview];

除了一个小异常(exception)之外,这一切都运行得很好。我的选项卡栏 Controller 的第一个选项卡上有一些标签,这些标签根据用户登录的内容进行填充。但是,由于该 View 实际上在用户进行身份验证之前加载到登录屏幕后面,因此在身份验证后它不会正确显示。

我的问题是......有没有办法让标签栏页面在登录后如何“刷新”?或者甚至可能在登录后才加载标签栏 Controller ?

谢谢!! 杰森

最佳答案

您可以通过多种方式解决这个问题,但我认为最简单的理解和实现是使用通知。让您的登录 View Controller 在用户成功登录时发布通知,并让任何其他关心用户身份验证的 View Controller 监听该通知。

您希望登录 Controller 和其他任何东西之间有相当松散的耦合 - 可能根据用户状态更改其内容的 View Controller 不必特别了解有关登录 Controller 的任何信息,并且登录 Controller 应该不必了解可能受用户状态变化影响的所有其他 Controller 。通知提供了松散耦合,并且易于使用。

关于xcode - iOS 标签栏 Controller 中的动态数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249939/

相关文章:

ssl - 专用 IP 和 SSL 证书的替代方案?

json - 如何在 Swift 4 中解析包含字典和数组的 JSON?

ios - 从 Firebase 检索所有子值并显示在文本字段/ TextView 上

ios - iOS 社交 api 是否可用于使用 facebook 或 twitter 对人员进行身份验证(让人们登录到您的应用程序)?

ios - 显示空单元格的 TableView

ios - 选择按钮时如何更改多个按钮的按钮图像?

本地网络上的 MySQL 远程访问出现身份验证错误

iphone - 访问Web服务器,获取目录中的所有文件

xcode - 我可以测量现代 Intel Mac OS X 上的分支预测失败吗?

ios - 如何构建我的 iOS 应用程序的发布版本并让 Apple 的应用程序加载器找到它?