今天我们来实现新增数据的功能。在新增餐馆的控制器中初始化一个类:
var restaurant = Restaurant()
接着创建关联,按住control键选择done按钮拖拽到控制器代码中:
会自动生成如下代码:
@IBOutlet weak var doneButton: UIBarButtonItem!
同理把文本框也拖过去。回到控制器中有一个方法已经为我们准备好了,现在我们取消它的注释,然后增加代码,如下:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
if sender as NSObject == doneButton {
if(!textField.text.isEmpty){
restaurant.name = textField.text
}
}
}
判断是不是点击了完成按钮,如果是,把文本框中的内容保存到实例中。回想我们之前在另一个场景设置的反向过渡还没有使用,现在在其中增加代码如下:
@IBAction func unwindToList(segue:UIStoryboardSegue){
let source = segue.sourceViewController as AddRestaurantViewController
let r1 = source.restaurant
if r1.name != "" {
restaurantList.append(r1)
}
}
设置源头是新增餐馆这个场景,然后我们把源头中的实例取出,非空的话添加到列表中。现在来测试一下是否成功了,添加一个新餐馆,然后再把它删除。