我必须以编程方式更改视图。我的代码仅在视图出现之前有效。
我的代码:
let tabController = self.storyboard?.instantiateViewControllerWithIdentifier("tabs") as UITabBarController
self.presentViewController(tabController, animated: false, completion: nil)
如果我在viewDidAppear
中使用此代码,则效果很好。但我需要不同的东西。
我的系统:
1)用户按下按钮
2)我正在向我的服务器发送请求
3)如果服务器返回" true"我想改变观点。
我该怎么做?
Ps:我没有询问有关发布请求的任何信息。我只需要在视图出现后以编程方式更改视图。
答案 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)
}