iOS学习- 04 控件

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.
    }
    
    
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值