如何刷新视图控制器
Posted
技术标签:
【中文标题】如何刷新视图控制器【英文标题】:how to refresh the view controller 【发布时间】:2017-06-19 10:03:37 【问题描述】:我有一个 A 类,当 viewwillAppear 完成时,我会在几秒钟后从服务器获取一些数据,根据这些数据我更改了视图上的一些按钮,有什么方法可以在目标 -c 中完全刷新视图?
【问题讨论】:
【参考方案1】:只需在您的 UI 上重新加载应该重新加载的元素。可能你正在做这样的事情:
override func viewDidLoad()
super.viewDidLoad()
updateUI()
func updateUI()
label1.text = "aa"
label2.text = "bb"
所以在从 API 获取数据后再次调用你的 updateUI() 函数
【讨论】:
嗨@Michał Kwiecień,我的函数已经在 viewDidLoad 中调用,问题是当我第一次打开我的应用程序打开视图然后调用 viewDidLoad 几秒钟后,当我从服务器接收数据时不调用 viewDidLoad 因为它需要更新或者我需要转到另一个视图然后预览视图才能读取 viewDidLoad 函数 -(void) viewWillAppear:(BOOL)animated [super viewWillAppear:animated]; // [self showAlert]; if (Support_three_ways_call) keypadEditorView.threewaysbutton.hidden = NO; else keypadEditorView.threewaysbutton.hidden = YES;当我第一次打开我的应用程序时没有从服务器接收到布尔值时,此代码调用,Support_three_ways_call 它是来自服务器的布尔值,所以当我第一次打开它时显示 false 然后来自服务器是的,但我必须刷新视图才能显示按钮 您调用哪个方法从 viewWillAppear 更新 UI? 我在从服务器调用我的类 viewWillApper 接收值时创建了通知,并且我尝试了 setNeedsDisplay 但它不起作用,实际上代码有效但不显示按钮,因为它需要刷新以上是关于如何刷新视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何刷新Scrollview内部的viewcontrollers?