swift学习笔记

页面之间的跳转app

从一个viewcontroller跳转到另一个viewcontroller使用以下函数ide

 1 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
 2         if (segue.identifier == "editTodo"){
 3             var vc = segue.destinationViewController as! DetailViewController
 4             var index = tableView.indexPathForSelectedRow()
 5             let indePath = index
 6             if ((indePath) != nil){
 7                 vc.todo = todos[indePath!.row]
 8                 vc.isEdit = true;
 9                 vc.index = indePath!.row
10                 
11             }
12         }
13         
14     }

其中segue就是连接两个viewcontroller的对象,函数

var vc = segue.destinationViewController as! DetailViewControllerspa

能够获取到须要跳转的viewcontroller的对象,若是须要给目标传值,能够在目标的viewcontroller的代码中添加一个成员变量,给他赋值。(真的只有这么土的方法么?有没有别的方式?求指点)3d

若是两个viewcontroller之间有多个传值怎么办?code

能够使用identifier来区分,对象

identifier的配置在blog

 

若是须要从目标viewcontroller回传之则须要图片

 1 @IBAction func close(segue: UIStoryboardSegue){
 2         
 3         
 4         var detail = segue.sourceViewController as! DetailViewController
 5         
 6         if(!detail.isEdit!){
 7             todos.append(detail.todo!)
 8            
 9         }else{
10             todos[detail.index] = detail.todo!
11         }
12         
13         tableView.reloadData()
14         
15         
16     }

close是本身定义的函数,用于回传值,由于是回传,因此是sourceViewControllerit

var detail = segue.sourceViewController as! DetailViewController

设置方法是在storyboard中设置

图片中左边的viewcontroller就是要回传值的controller,给他的exit绑定一个函数就能够了

相关文章
相关标签/搜索