我正在创建一个带有事件的新EKEventViewController并在之后显示
let ekEventViewController = EKEventViewController(nibName: nil, bundle: nil)
ekEventViewController.delegate = self
ekEventViewController.allowsEditing = true
ekEventViewController.event = event
setViewController(ekEventViewController)
在setViewController
中,我将新控制器添加为childViewController,将新控制器视图添加为子视图。现在我想打电话给#34; EDIT"演示EKEventViewController后立即执行操作。我没有任何子类,我只想使用EKEventEditingViewController
自动编辑。
到目前为止,我已经尝试了几种与"编辑"相关的方法。
我也尝试调用editButtonItem
Selector
,但没有成功......
ekEventViewController.perform(ekEventViewController.editButtonItem.action!
有没有办法在没有子类化的情况下完成这项工作?我甚至在考虑反思,但无法弄清楚......
提前致谢!
答案 0 :(得分:1)
创建编辑视图控制器后,您只需要显示它。确保你已经定义了你的回调,这样当你自己解散时你会做出适当的反应 - 取决于用户采取的行动(取消,删除,添加,修改):
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let sourceArray = originalEventsList
let eventViewController: EKEventEditViewController = EKEventEditViewController()
eventViewController.event = sourceArray[indexPath.row]
eventViewController.eventStore = self.eventStore
eventViewController.editViewDelegate = self
self.presentViewController(eventViewController, animated:true, completion:nil)
}
答案 1 :(得分:0)
解决方案是将新创建的EKEventEditViewController
设置为我所需的ViewController的现有UINavigationViewController,因为EKEventEditViewController
本身是UINavigationController
类型。
let newNC = EKEventEditViewController()
self.navigationController = newNC
然后,将newNC
设置为当前根childViewController
的{{1}},并将其视图添加为子视图。