2016-04-13 1 views
0

новых к кодированию, я понял, как позволить пользователю выбрать фотографию в качестве фона их со следующим кодомКак установить изображение из UIImagePickerController в UIImages в нескольких контроллерах зрения

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     backgroundImage.contentMode = .ScaleAspectFill 
     backgroundImage.image = pickedImage 
    } 

    dismissViewControllerAnimated(true, completion: nil) 
} 

// Wallpaper function 

@IBAction func wallpaperMenuPressed(sender: AnyObject) { 

    imagePicker.allowsEditing = false 
    imagePicker.sourceType = .PhotoLibrary 

    presentViewController(imagePicker, animated: true, completion: nil) 

} 

И это работает , до сих пор не выяснили, как его сохранить, но скоро узнают.

Но если у меня есть backgroundImage во всех моих представлениях, как мне заставить его установить одинаковое изображение для всех из них?

Благодаря

ответ

1

Я бы предложил сделать использование NSNotificationCenter.

В каждом из контроллеров просмотреть, где вам нужно, чтобы применить изменения, когда вы слушаете для уведомления:

let nc = NSNotificationCenter.defaultCenter() 
nc.addObserver(self, selector: "UpdateBackgroundImage:", name: "BackgroundImageChanged", object: image) 

В каждом из этих контроллеров отображения вам необходимо реализовать селектор, UpdateBackgroundImage в этом случае. Они будут аналогичны:

func UpdateBackgroundImage(notification: NSNotification) { 
    let backgroundImage = notification.userInfo!["image"] as UIImage 
    // Your code to assign image to background 
} 

После сохранения изображения вы можете отправить уведомление:

// Right after you assign backgroundImage.image = pickedImage 
let nc = NSNotificationCenter.defaultCenter() 
let myDict = [pickedImage, "image"] 
nc.postNotificationName("BackgroundImageChanged", object: nil, userInfo: myDict) 

Хорошая вещь об использовании NSNotificationCenter является то, что по мере добавления новых представлений, которые необходимо обновить фон изображения вы просто добавляете первый бит кода. Вам не нужно обновлять код, в котором вы выбираете изображения.

+0

Кажется, что это сработает, но я не уверен, как его реализовать? – Khoury

+0

Вы знаете, как сохранить изображение? Я знаю, что это связано с nsuserdefaults, но как только я ушел из приложения, изображение возвращается к оригиналу. – Khoury

+0

Это действительно отдельный вопрос. Вот ответ: http://stackoverflow.com/questions/26171901/swift-write-image-from-url-to-local-file – user212514

1

Я предлагаю вам создать BaseViewController, в котором есть общая функциональность вашего приложения, а также возьмите imageView.

После этого унаследует все ваши viewControllers формы BaseViewController так, что imageView также наследоваться, и вы можете установить его, и он будет таким же, все ваши viewControllers унаследовал от BaseViewController.

+0

Я не могу этого сделать, потому что все мои взгляды каждый имеют свой собственный файл контроллера, спасибо за вашу помощь, хотя :) – Khoury

 Смежные вопросы

  • Нет связанных вопросов^_^