每一个UIViewCongtroler都有一个UIView的对象view,而这个view是真正展示各种控件的视图,而视图控制器本身则负责对这个view所呈现的内容进行控制
视图控制器的生命周期函数:
import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! override func loadView() { // 加载当前视图控制器中的视图 } // 当前视图控制器的视图加载完成,一般在这个方法里进行视图控制器功能代码的编写 override func viewDidLoad() { super.viewDidLoad() } override func viewWillAppear(animated: Bool) { //视图将要出现 } override func viewDidAppear(animated: Bool) { // 视图已经出现 } override func viewWillDisappear(animated: Bool) { // 视图即将消失 } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
对于第一个方法loadView,有两种使用方法,
override func loadView() { // 加载当前视图控制器中的视图 super.loadView()//使用系统自动创建的view }还可以自定义view
override func loadView() { // 加载当前视图控制器中的视图 // 使用自定义的view let imgv = UIImageView(frame: UIScreen.mainScreen().bounds) self.view = imgv }
import UIKit class SubViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.view.backgroundColor = UIColor.grayColor() // Do any additional setup after loading the view. } }注意这两部分应写在两个文件中
import UIKit class ViewController: UIViewController { @IBOutlet weak var button: UIButton! @IBAction func changeVIew(sender: UIButton) { let subVc = SubViewController() self.presentViewController(subVc,animated: true,completion:nil) } // 当前视图控制器的视图加载完成,一般在这个方法里进行视图控制器功能代码的编写 override func viewDidLoad() { super.viewDidLoad() } }
另外,还有一种方式,使用storyboard中的segue,可以方便的进行界面的转换,而不需要任何代码~
如下所示:
按住一个界面的按钮,按住control,然后拖拽到另一个界面,弹出的对话框点击show
之后一定要给segue设置id,一定要给segue设置id,一定要给segue设置id,主要的事情说三遍。
设置id的方法:
点击屏幕中的segue,在左侧界面的attribute inspector中输入名字即可。
使用这种方式切换界面,在UIViewControler中编辑函数prepareForSegue可以完成界面之间传值的功能。
另外,使用storyboard,而不用代码,也可以轻松的完成改变视图控制器切换时的动画:
动画效果包括coverVertical(垂直切换)、crossDissolve(淡入淡出)还有particalCurl(翻页效果)、filpHorizental(翻转效果)。设置方式如下:
在右侧的工具栏中,找到transitionStyle(倒数第二行),修改即可
不得不说,storyboard真是iOS开发人员贴心的小棉袄~
作为一只兔几要去蹦哒一会儿了~