san*_*t05 9 iphone objective-c uiimagepickercontroller ios swift
我正在开发一个使用tabbar系统的项目.tabbar项目之一是JobPostingViewController.我将它嵌入UINavigationController中.在这个视图控制器中有一个名为add new job的UIButton.我实现了pushviewcontroller去CreateJobPostViewController.在那里我需要添加UIImagePickerController来选择图像.当我点击完成按钮或从库中选择一个图像时,它会关闭到JobPostingViewController.但它应该去CreateJobPostViewController.任何人请帮助我.提前致谢.
JobPostingViewController中的代码
@IBAction func openCreateJob(sender: AnyObject) {
let vc = self.storyboard?.instantiateViewControllerWithIdentifier("CreateJobPostViewController") as! CreateJobPostViewController
self.navigationController?.pushViewController(vc, animated: true)
}
Run Code Online (Sandbox Code Playgroud)
CreateJobPostViewController中的代码
@IBAction func addImages(sender: AnyObject) {
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
picker.dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
Sou*_*rma 19
修复了将图像选择器的modalPresentationStyle设置为"OverCurrentContext"的问题:
picker.modalPresentationStyle = .overCurrentContext
Run Code Online (Sandbox Code Playgroud)
添加Picker作为子视图
尝试将imagepicker作为子视图添加到您的CreateJobPostViewController中,然后将其从代理中的父项中删除
@IBAction func openCreateJob(sender: AnyObject) {
var picker: UIImagePickerController = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = false
picker.sourceType = .PhotoLibrary
self.addChildViewController(picker)
picker.didMoveToParentViewController(self)
self.view!.addSubview(picker.view!)
}
Run Code Online (Sandbox Code Playgroud)
然后
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
picker.view!.removeFromSuperview()
picker.removeFromParentViewController()
}
Run Code Online (Sandbox Code Playgroud)
用于呈现
通过currentcontext显示选择器,例如编辑取消选择,
picker.modalPresentationStyle = .overCurrentContext 在展示之前使用//
presentViewController(picker, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
小智 6
你可以使用:
picker.modalPresentationStyle = .overCurrentContext
Run Code Online (Sandbox Code Playgroud)
但根据您的屏幕布局,最好使用:
picker.modalPresentationStyle = .overFullScreen
Run Code Online (Sandbox Code Playgroud)
否则您的"取消","重拍"和"使用照片"按钮可能不可见.
| 归档时间: |
|
| 查看次数: |
5133 次 |
| 最近记录: |