本項目是《beginning iOS8 programming with swift》中的項目學習筆記==》所有筆記目錄html
------------------------------------------------------------------------------------------------------------------swift
1. 拖一個table view控制器,修改單元格content爲static cells,修改rows爲5。
2. 第一格:修改高度爲250,拖一個image view,設置image爲camera,mode爲Aspect Fit。
3. 第二格:修改高度爲72,拖一個Label,設爲Name,拖一個text field,設置placeholder爲Restaurant Name。
剩下的相似,以下圖:ide
5. 包一個導航控制器,設置title爲New Restaurant。
6. 在主控制器的導航欄上拖一個bar button item,設置identifier爲Add,連線到上面的控制器(Modal,identifier爲addRestaurant)。
7. 在New Restaurant的導航欄左邊拖一個bar button item,設置文字爲Cancel。
8. 在主控制器中增長一個unwind方法,綁定到Cancel按鈕:學習
@IBAction func unwindToHomeScreen(segue:UIStoryboardSegue) {
}
9. 新建一個繼承自UITableViewController的控制器類AddTableViewController,並關聯到IB。
10. 去掉numberOfSectionsInTableView方法和numberOfRowsInSection方法(咱們用靜態單元格)。
11. 實現點擊第一格單元格,選擇照片:spa
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { if indexPath.row == 0 { if UIImagePickerController.isSourceTypeAvailable(.PhotoLibrary) { let imagePicker = UIImagePickerController() imagePicker.allowsEditing = false imagePicker.sourceType = .PhotoLibrary // 或者.Camera imagePicker.delegate = self self.presentViewController(imagePicker, animated: true, completion: nil) } } tableView.deselectRowAtIndexPath(indexPath, animated: true) }
12. 獲取選中圖片:
增長一個Outlet,並關聯IB:@IBOutlet weak var imageView: UIImageView!
控制器遵照兩個協議:UIImagePickerControllerDelegate, UINavigationControllerDelegate。實現代理方法:代理
func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) { imageView.image = image imageView.contentMode = .ScaleToFill imageView.clipsToBounds = true dismissViewControllerAnimated(true, completion: nil) }
13. Bug修改:
選擇完照片後,控制器狀態欄文字顏色變了。實現下面方法修復:code
func navigationController(navigationController: UINavigationController!, willShowViewController viewController: UIViewController!, animated: Bool) { UIApplication.sharedApplication().setStatusBarStyle(.LightContent, animated: false) }
提升:
實現保存按鈕的方法(數據驗證,保存,關閉控制器),切換YES/NO按鈕的顏色
須要用到下面的方法:performSegueWithIdentifier(「unwindToHomeScreen」, sender: self) orm