从Callback调用UiViewController

时间:2015-09-13 07:11:25

标签: ios swift uiviewcontroller alamofire

我和swift一起工作,我的情况很简单。我想调用新的UiViewController表单回调函数,我的代码在这里

    var orderActions=OrderServices();
    orderActions.addOrder(self.order, controller: self,orderServiceCallback:{
        (data:AnyObject?,err:String?) in

        if( err == nil ){
            var booking=self.getControllerByStoryBoardIdentifier(BookingViewController.getIdentifier()) as! BookingViewController;
    self.presentViewController(booking, animated: true, completion: nil);
        }
    });

此代码未调用BookingViewController,但它没有addOrder函数

错误消息在这里:

Warning: Attempt to present <BookingViewController: 0x7f94ec810f40> on <MainViewController: 0x7f94e37385e0> which is already presenting (null)

p.s我使用了Alamofire库

2 个答案:

答案 0 :(得分:0)

您需要像这样实例化视图控制器

var booking = storyboard.instantiateViewControllerWithIdentifier("Loginn") as! BookingViewController
self.presentViewController(booking, animated: true, completion: nil);

答案 1 :(得分:0)

感谢大家的帮助,我找到了答案,就是这样。

UIKit不是线程安全的。 UI应该只从主线程更新。

在我的情况下,我的代码必须在

dispatch_async(dispatch_get_main_queue()) {

}