【问题标题】:how to refresh the view controller如何刷新视图控制器
【发布时间】:2017-06-19 10:03:37
【问题描述】:

我有一个 A 类,当 viewwillAppear 完成时,我会在几秒钟后从服务器获取一些数据,根据这些数据我更改了视图上的一些按钮,有什么方法可以在目标 -c 中完全刷新视图?

【问题讨论】:

    标签: objective-c view setneedsdisplay


    【解决方案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 但它不起作用,实际上代码有效但不显示按钮,因为它需要刷新
    猜你喜欢
    • 2013-03-31
    • 2016-07-28
    • 2018-04-02
    • 1970-01-01
    • 2023-03-14
    • 2018-08-07
    • 2018-06-03
    • 1970-01-01
    相关资源
    最近更新 更多