Swift Guardar el estado del controlador de vista usando el codificador más allá del cierre de la aplicación

Estoy usando Xcode 8 y swift 2.3

Quiero guardar todo el controlador de vista en el archivo y restaurar el estado incluso después de que la aplicación se cierre. Busqué en todas partes y descubrí que necesitamos usar el codificador para eso. pero todo solo se muestra para guardar un objeto. pero aquí necesito guardar ViewContoller completo y subvistas.

ViewCotroller tendrá tres botones

Añadir texto
Agregar imagen: el usuario puede agregar cualquier cantidad de vistas de texto e imágenes. Entonces necesito guardar toda esa información también.
Agregar ViewController: el usuario puede tener una matriz de este viewController y necesitar guardarlo todo.

Pregunta 1)

¿Puede guardar self.view y puede guardar todas las subvistas automáticamente?

Pregunta 2)

Necesito iniciar sin codificador al inicio simplemente usando

let nameVccVar = nameVcc()

y

let nameVccVar = nameVcc(coder: CodeVar)

Pregunta 3)

¿Cómo guardo todos estos datos codificados en un archivo usando NSKeyedUnarchiver y los recupero?

Ayúdame o dame consejos para que todo esto funcione

class nameVcc: UIViewController
{
    var nameIntVar = 0
    var nameStringVar = "Save this"
    var nameImageVar = UIImage()

    override func viewDidLoad()
    {
        super.viewDidLoad()
    }

    required init?(coder NkdPsgVar: NSCoder)
    {
        super.init(coder: NkdPsgVar)
    }

    override func encodeWithCoder(DkdPsgVar: NSCoder)
    {

    }

    func addTextViewBtnClick()
    {
        let viewVar = UIView()

        // Set many values for view 

        self.view.addSubview(viewVar)
    }

    func addImageViewBtnClick()
    {
        let imgViewVar = UIImageView()

        // Set many values for ImageView

        self.view.addSubview(imgViewVar)
    }
}

Yo también cansado:

convenience init()
{
    self.init()
}

y

convenience init()
{
    self.init(coder: NSCoder())
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta