頁面之間的跳轉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綁定一個函數就能夠了