我打算将我当前的defmodule NewClientModule do
use LibraryModule
def do_something(), do: "Something else"
end
解雇并提交给新的NewClientModule.do_something()
# "Something else"
。
我使用了以下代码
UIViewController
它出现以下错误
2016-06-04 11:40:59.864 myApp [851:117649]试图解雇 演示控制器已经过渡。 (< _UIFullscreenPresentationController:0x1703e6900>) 2016-06-04 11:40:59.878 ePassBook [851:117649]没有设置transitionViewForCurrentTransition,演示控制器 在演讲期间被解雇了? (< _UIFullscreenPresentationController:0x1703e6900>)
答案 0 :(得分:1)
使用此代码,
目标C代码:
[self.navigationController presentViewController:newViewController animated:NO completion:^{
dispatch_after(0, dispatch_get_main_queue(), ^{
[self.navigationController dismissViewControllerAnimated:NO completion:nil];
});
}];
Swift Code:
self.navigationController?.presentViewController(newViewController, animated: false, completion: { () -> Void in
dispatch_after(0, dispatch_get_main_queue(), { () -> Void in
self.navigationController?.dismissViewControllerAnimated(false, completion: nil)
})
})
希望它有用
答案 1 :(得分:0)
您首先需要解雇当前存在的viewcontroller
,然后再提出另一个{1}},因为您一次只能提出两个viewcontrollers
,所以,您的代码应该像,
self.dismissViewControllerAnimated(false) { () -> Void in
self.presentViewController(newViewController, animated: true, completion: nil)
}
如果您使用navigation controller
,则在navigation controller
在评论中提出更新:
举个例子,
你有三个View控制器说A,B和C,目前呈现的viewController是C,如A - > B - > ç
现在你要解雇C并提出新的D然后你必须做B的实例,因为你正在解雇C,所以自我意味着什么。它没有。
所以你应该让B的实例说b
并在b
上显示D
类似的东西,
self.dismissViewControllerAnimated(false) { () -> Void in
b.presentViewController(d, animated: true, completion: nil)
}
如果您使用的是导航控制器,那么它应该是,
b.navigationController.presentViewCon.....
答案 2 :(得分:0)
尝试使用此代码我觉得它很有用。
目标-C
[self.navigationController presentViewController:newViewController animated:NO completion:^{
dispatch_async(dispatch_get_main_queue(), ^(void){
//Run UI Updates
[self.navigationController dismissViewControllerAnimated:NO completion:nil];
});
}];
SWIFT
self.navigationController?.presentViewController(newViewController, animated: false, completion: { () -> Void in
dispatch_async(dispatch_get_main_queue()) {
self.navigationController?.dismissViewControllerAnimated(false, completion: nil)
}
})