在视图出现后以编程方式更改视图

时间:2015-03-31 18:57:42

标签: ios swift

我必须以编程方式更改视图。我的代码仅在视图出现之前有效。

我的代码:

let tabController = self.storyboard?.instantiateViewControllerWithIdentifier("tabs") as UITabBarController
self.presentViewController(tabController, animated: false, completion: nil)

如果我在viewDidAppear中使用此代码,则效果很好。但我需要不同的东西。

我的系统:

1)用户按下按钮

2)我正在向我的服务器发送请求

3)如果服务器返回" true"我想改变观点。

我该怎么做?

Ps:我没有询问有关发布请求的任何信息。我​​只需要在视图出现后以编程方式更改视图。

2 个答案:

答案 0 :(得分:2)

我猜你的服务器请求是一个后台任务,服务器响应是在一个闭包中处理的...我是对的吗?

如果是这样,您必须记住,用户界面的更改必须始终在主线程中完成。因此,将这些更新推送到服务器的答案闭包中的主线程中:

{
     // within answer closure

     dispatch_async(dispatch_get_main_queue(), {
         // user interface updates here...

         // example: stop an activityIndicator from spinning...
         self.activityIndicator.stopAnimating()
     })

}

答案 1 :(得分:0)

因此,在您的代码段中,您希望在获得成功结果时进行视图更改(我认为在您的代码中为“status == 1”):

if status == 1 {
    let tabController = self.storyboard?.instantiateViewControllerWithIdentifier("tabs") as UITabBarController
    self.presentViewController(tabController, animated: false, completion: nil)
}