今天我们来实现新增数据的功能。在新增餐馆的控制器中初始化一个类:
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) } }
设置源头是新增餐馆这个场景,然后我们把源头中的实例取出,非空的话添加到列表中。现在来测试一下是否成功了,添加一个新餐馆,然后再把它删除。