1.)Picker View
绑定数据:a.) 扩展ViewController 实现 UIPickerViewDataSource , UIPickerviewDelegate Protocol (interface)
//
// ViewControllerExtension.swift
// BeautyGallery
//
// Created by Ricky Choi on 16/5/29.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
extension ViewController: UIPickerViewDataSource {
// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return beauties.count
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return beauties[row]
}
}
2.)Segue - View Controller间的联线
3.) 为新的View Controller 新建立一个ViewController.类 - GalleryViewController,绑定该View Controller 到 GalleryViewController
View Contoller属性中的Class选择 GalleryViewcontroller
判断去哪个视图,需要命名Segue ,写prepareForSegue函数。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "GotoGallery" {
let index = beautyPicker.selectedRowInComponent(0)
var imageName: String?
switch index {
case 0:
imageName = "fangbingbing"
case 1:
imageName = "libingbing"
case 2:
imageName = "wangfei"
case 3:
imageName = "yangmi"
case 4:
imageName = "zhouxu"
default:
imageName = nil
}
var vc = segue.destinationViewController as! GalleryViewController
vc.imageName = imageName
}
}
//
// GalleryViewController.swift
// BeautyGallery
//
// Created by Ricky Choi on 16/5/29.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
class GalleryViewController: UIViewController {
@IBOutlet weak var beautyImage: UIImageView!
var imageName: String?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if imageName != nil {
beautyImage.image = UIImage(named: imageName!)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
在第二个view返回:
a.)手动 UnWind Segue
I)在父View Controller 写
@IBAction func close(segue: UIStoryboardSegue) {
print("closed")
}
II.)在第二个view Controller中的按中联线到自己右上角的Exit,选择close方法
Full code:
//
// ViewController.swift
// BeautyGallery
//
// Created by Ricky Choi on 16/5/29.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var beautyPicker: UIPickerView!
let beauties = ["范冰冰", "李冰冰", "王菲", "杨幂", "周迅"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
beautyPicker.dataSource = self
beautyPicker.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "GotoGallery" {
let index = beautyPicker.selectedRowInComponent(0)
var imageName: String?
switch index {
case 0:
imageName = "fangbingbing"
case 1:
imageName = "libingbing"
case 2:
imageName = "wangfei"
case 3:
imageName = "yangmi"
case 4:
imageName = "zhouxu"
default:
imageName = nil
}
var vc = segue.destinationViewController as! GalleryViewController
vc.imageName = imageName
}
}
@IBAction func close(segue: UIStoryboardSegue) {
print("closed")
}
}
//
// ViewControllerExtension.swift
// BeautyGallery
//
// Created by Ricky Choi on 16/5/29.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
extension ViewController: UIPickerViewDataSource {
// returns the number of 'columns' to display.
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
// returns the # of rows in each component..
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return beauties.count
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return beauties[row]
}
}
//
// GalleryViewController.swift
// BeautyGallery
//
// Created by Ricky Choi on 16/5/29.
// Copyright © 2016年 worm. All rights reserved.
//
import UIKit
class GalleryViewController: UIViewController {
@IBOutlet weak var beautyImage: UIImageView!
var imageName: String?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if imageName != nil {
beautyImage.image = UIImage(named: imageName!)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}