iOS学习- 04 控件

来源:互联网 发布:大淘客和淘宝客的区别 编辑:程序博客网 时间:2024/05/21 18:49

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

0 0
原创粉丝点击