两个视图之间的快速转换需要很长时间

时间:2015-07-02 10:05:25

标签: swift view nsurlsession transitions presentviewcontroller

与window.rootViewController两个视图之间的转换大约需要1分钟

当返回成功时,我与我的服务器有连接,我更改了我的rootViewControler,但这需要很长时间。如果我跳转连接的代码,视图会立即出现?

http://localhost:8000/crop-sections/10

我尝试过使用presentViewControler转换是immediat,但是我在视图中的图像消失了,只有按钮到位了?
提前感谢您的帮助

2 个答案:

答案 0 :(得分:1)

NSURLSession负责减慢视图转换

我还没找到原因!但这是有罪的。这很奇怪,因为完成功能结束了。有人知道在完成功能后,进程是否正在运行 对不起我非常糟糕的英语: - (

 let initViewController: UIViewController = storyBoard.instantiateViewControllerWithIdentifier("viewAcc") as accueilViewController
                var window :UIWindow = UIApplication.sharedApplication().keyWindow!
 window.rootViewController = initViewController
 window.makeKeyAndVisible()
 println("end")
控制台println(“end”)中的

是执行,我在控制台中看到来自我的accueilviewcontroller viewDidAppear函数的println(viewdidload),但是视图出现超过一分钟。

答案 1 :(得分:1)

解决

是的!经过漫长的一夜之后,我发现为什么我的观点在wiewdidload执行后需要花费太多时间才能出现。

它是关于线程和NSUrlSession,NSUrlSession的回调是在后台线程上,就像我在内部处理rootview一样,视图不在主线程上处理,应该是(苹果推荐在用户界面上)!!!!
为了解决它,我只是在主线程上返回此代码执行。在我的completionHandler中我做到了

var task = self.session.dataTaskWithRequest(self.request, completionHandler: {data, response, error -> Void in

        dispatch_async(dispatch_get_main_queue(),{

                mycallback(resultat: "success")

            })
 })

mycallback函数句柄rootviewcontroller
工作很棒.....