如何刷新视图控制器

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?

如何使用新数据重新加载或刷新选项卡栏控制器的选项卡栏中的数据?

如何在离子中刷新视图

HMSegmentedControl如何刷新其标题