我有UINavigationController
通过self.setViewControllers([self.homeController], animated: false)
调出视图。家庭控制器有一个按钮,通过发送代理UIImagePickerController
来发送UINavigationController
。因此导航控制器会调用self.presentViewController(imagePicker, animated: true, completion: nil)
。
这一切都运行良好,我的图像选择器弹出。取消它也能达到我的预期,并将我带回homeController。但是,如果我选择使用视频',我实际上想要导航到另一个视图。所以我这样做了;
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String:AnyObject]) {
self.dismissViewControllerAnimated(true, completion: {
self.pushViewController(self.detailController, animated: false)
})
}
奇怪的是,我看了detailController一小段时间,然后出现homeController。跟踪viewWillLoad / viewWillAppear调用,看来我的细节控制器确实加载了,然后出现。紧接着,homeController做同样的事情。所以我怀疑这是一个排序问题,但鉴于UIImagePickerControllerDelegate
只有两种方法,我不知道我还能做什么呢......
有人能提出正确的方法吗?
答案 0 :(得分:0)
原来它比我想象的更上游 - 我在viewWillAppear中做逻辑推送控制器。应该在viewDidLoad中这样做。移动它就行了。