Giving View Controllers Access to the Image Store

The DetailViewController needs an instance of ImageStore to fetch and store images. You will inject this dependency into the DetailViewController’s designated initializer, just as you did for ItemsViewController and ItemStore in Chapter 9.

In DetailViewController.swift, add a property for an ImageStore.

var item: Item! {
    didSet {
        navigationItem.title = item.name
    }
}
var imageStore: ImageStore!

Now do the same in ItemsViewController.swift.

let itemStore: ItemStore
var imageStore: ImageStore!

Next, still in ItemsViewController.swift, update prepareForSegue(_:sender:) to set the imageStore property on DetailViewController.

override func prepareForSegue(segue: UIStoryboardSegue, ...

Get iOS Programming: The Big Nerd Ranch Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.