Я пытаюсь сделать загрузчик изображений в приложении ios.Выбор фотографии возвращается в пустой UI
EDIT 7
Этот вопрос теперь более четко спросил здесь: Present Modal for Image Select Erases UI
КОНЕЦ EDIT 7
Первое, что я пытаюсь сделать, это дать пользователю возможность выбрать изображение, которое они хотят загрузить.
EDIT 6
я упростил весь код, чтобы просто нажать одну кнопку. Модальная презентация удаляет пользовательский интерфейс предыдущей страницы. Как я это предотвращаю.
import UIKit
class AddImageToStandViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func loadImageButtonTapped(sender: UIButton) {
let imagePicker = UIImagePickerController()
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
self.presentViewController(imagePicker, animated: true, completion: nil)
}
}
Я обнаружил, что отбор работает просто отлично и не разрушает UI, если я нажму/SEGUE от другого к этому контроллеру.
КОНЕЦ EDIT 6
Ниже этого другие методы, которые я пробовал до этого
До сих пор этот код позволяет пользователю нажать кнопку и выбрать фотографию из их фото. Но после того, как они нажмут на фотографию, она просто вернет их в пустой вид, кроме навигационной панели внизу.
Кажется, мой пользователь возвращается, а не к виду, из которого они пришли, но к отдельному пустому виду. Как вернуть пользователя в представление, из которого они пришли?
import UIKit
class CreateStandViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet var image: UIImageView!
...
@IBAction func selectPicture(sender: AnyObject) {
let ImagePicker = UIImagePickerController()
ImagePicker.delegate = self
ImagePicker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
self.presentViewController(ImagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
image.image = info[UIImagePickerControllerOriginalImage] as? UIImage
self.dismissViewControllerAnimated(true, completion: nil)
}
...
Сообщите мне, если есть дополнительная информация, которую я должен дать.
EDIT 1
этот код имеет тот же эффект
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
image.image = info[UIImagePickerControllerOriginalImage] as? UIImage
picker.dismissViewControllerAnimated(true, completion: nil)
}
Я пытался добавить эту строку ниже, но я получаю ошибку о том, что CreateStandViewController.Type
не могут быть преобразованы в ожидаемой UIViewController
.
self.presentViewController(CreateStandViewController, animated: true, completion: nil)
EDIT 2
Этот код ниже ошибки не суммируется и не но ничего не меняется
let createStandController = CreateStandViewController()
self.presentViewController(createStandController, animated: true, completion: nil)
EDIT 3
Я буквально скопировал весь код здесь: http://www.codingexplorer.com/choosing-images-with-uiimagepickercontroller-in-swift/ и теперь имеют:
import UIKit
class CreateStandViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet var imageView: UIImageView!
let imagePicker = UIImagePickerController()
@IBAction func loadImageButtonTapped(sender: UIButton) {
imagePicker.allowsEditing = false
imagePicker.sourceType = .PhotoLibrary
presentViewController(imagePicker, animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
imagePicker.delegate = self
}
// MARK: - UIImagePickerControllerDelegate Methods
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.contentMode = .ScaleAspectFit
imageView.image = pickedImage
}
dismissViewControllerAnimated(true, completion: nil)
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
dismissViewControllerAnimated(true, completion: nil)
}
}
У этого вопроса есть такая же проблема, как раньше. Когда изображение выбрано, меня отправляют обратно в представление, белое с навигационной панелью внизу.
EDIT 4
Я запустить тот же код в своем собственном отдельном проекте в качестве автономного контроллера представления, и он работает. Есть код, который у меня есть на фоне моего приложения, которое убивает функциональность кода (возможно). Я предполагаю, что это может иметь какое-то отношение к navbar?
РЕДАКТИРОВАТЬ 5
я удалил панель вкладок в нижней части с помощью seguing к представлению изображения выбора посредством настоящего модально Segue, но не имел никакого эффекта.
Добавление кода не изменил выход и я не знаю, что дополнительный код будет сделайте это. – Rorschach
@ Rorschach позволяет обсудить это. Вы действительно хотите убрать диспетчер выбора контроллера контроллера, который из? с этим кодом 'rejectViewControllerAnimated (true, completion: noil)' – George
Я ценю вашу помощь, но я честно не понимаю, что вы только что написали. – Rorschach