V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsk425
0.01D
V2EX  ›  问与答

App 中修改个人信息后,如何在其他已展示页面中更新,比如动态

  •  
  •   zsk425 · 2016 年 11 月 30 日 · 3680 次点击
    这是一个创建于 3332 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景: 假设 App 有两个 Tab ,分别为「个人动态」和「我」,如果在「我」中修改了个人信息,如昵称、头像,那么已展示的「个人动态」中也要更新。

    问题: 如果仅涉及单个页面,还是很简单的,比如用通知来做。但是如果影响了有多个页面,这样处理起来就会很恶心。所以想请教一下,你们遇到这种情况时,产品是如何设计的,或者技术上是怎么做的,多谢。

    10 条回复    2016-11-30 16:04:53 +08:00
    IamJ
        1
    IamJ  
       2016 年 11 月 30 日
    iOS 的一个做法是用 [NSUserDefaults standardUserDefaults] 去保存用户的信息到本地,各个 View 的个人信息从这份本地数据里面取
    lhtdege
        2
    lhtdege  
       2016 年 11 月 30 日
    可以使用 EventBus 解决
    yhxx
        3
    yhxx  
       2016 年 11 月 30 日
    这个不应该是单独存的吗?
    yhxx
        4
    yhxx  
       2016 年 11 月 30 日
    我的意思是个人信息单独存起来,所有需要用的地方都去读这份信息
    KayWong
        5
    KayWong  
       2016 年 11 月 30 日
    用 HashTable 保存一份用户的个人信息,在需要展示个人信息的视图用 RC 和数据绑定,以后只更新 HashTable 里的用户信息就可以了,等于一份数据,全局共用,实时更新
    zsk425
        6
    zsk425  
    OP
       2016 年 11 月 30 日
    @IamJ 谢谢回答,不过您显然没有看懂我的问题。
    zsk425
        7
    zsk425  
    OP
       2016 年 11 月 30 日
    @lhtdege 确实,这就是通知的方式
    zsk425
        8
    zsk425  
    OP
       2016 年 11 月 30 日
    @yhxx 是单独存的。我的意思是修改了用户信息后,其他页面如何刷新
    zsk425
        9
    zsk425  
    OP
       2016 年 11 月 30 日
    @KayWong 谢谢,这种方式确实可以解决问题。
    IamJ
        10
    IamJ  
       2016 年 11 月 30 日
    好吧,一时手快就答了。 iOS 貌似就是 KVO
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   952 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    ♥ Do have faith in what you're doing.