我在显示和更新用户名标签时遇到了这个问题。
用户 id 1 - ‘Felicia’
用户 id 2 - “Sam”
(第 3 个屏幕:点击另一个屏幕后,用户名标签自动恢复为“Felicia”,而它应该是“Sam”)
我的理想输出是用户名的标签将保留为所选用户,除非用户发生更改,并且只要名称更新,也能够在侧面菜单栏上反射(reflect)名称标签。
在我的代码中,我尝试在 viewDidAppear 和 viewDidLoad 中添加我的方法(getUserInfo() 和 setUserNameLabel()),但是这两种情况都没有生成我想要的输出。
viewDidAppear
优点: - 名称标签将反射(reflect)所选用户名称的更新(用户可以更改其名称)
缺点: - 选择其他 View 时,名称标签将恢复为侧边菜单栏上用户 id 1 的名称
viewDidLoad
优点: - 选择其他 View 时,名称标签不会恢复为侧边菜单栏上用户 id 1 的名称
缺点 - 名称标签不会反射(reflect)所选用户名称的更新
最佳答案
您需要在侧边菜单 viewcontroller 中创建委托(delegate)或使用 NSNotificationCenter 来触发名称更改事件。
因为当您创建侧边菜单时,以便在此类 viewDidLoad 或任何其他方法在生命周期中调用一次。
通过 NSNotificationCenter 执行此操作的示例。
关于ios - viewDidLoad 与 viewDidAppear - 名称标签问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948591/