我有一个应用程序,其中有侧边栏菜单。像Instagram和Facebook应用程序一样,我有一个用户设置视图,我可以上传图片。此图片也显示在侧边栏菜单中。当侧边栏菜单代码viewdidload
时,此图片会加载一次。
问题是如果用户在用户设置视图中更改图像,我无法更新侧边栏菜单。 viewdidload
只运行一次。
最好的办法是,如果我可以在用户设置视图中设置边栏中的UIimage - 但这是否可能?
我对Xcode(swift)并不擅长,但是请耐心等待。
答案 0 :(得分:0)
如果没有代码示例或知道侧边栏的实现,这些只是猜测。只有在将视图添加到层次结构中时,才会调用 viewDidLoad 。尝试将需要在每个后续外观上执行的逻辑移动到 viewWillAppear 。
过去当我实现了侧边栏时,我使用了UITableView或UICollectionView。当您使用定义良好的委托和方法时,这简化了确定所选内容并重新加载视图的状态/数据。这对我来说很有效,但YMMV。
如果我可以从用户设置视图在侧边栏中设置UIimage,那么最好的事情就是 - 但这是否可能?
最好将侧边栏和设置视图分开。他们不需要知道另一个存在。这并不意味着它们不应该在该数据上共享相同的数据或抽象(服务类,plist等)。
答案 1 :(得分:0)
你有几个可能来完成这件事。一个没有用尽的清单:
使menuVC成为viewController的委托,您可以在其中执行配置文件图像更改操作。当有人更改个人资料图片时,请致电:
delegate.profileImageDidChange()
在您的委托协议中,您必须定义该方法。请参阅委托教程(超链接)。如果您需要更多帮助将其实施到您的代码中,只需提出其他问题或编辑您的问题。