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綁定一個函數就能夠了

相關文章
相關標籤/搜索