在EKEventViewController
问题描述:
我创建一个事件的新EKEventViewController编程显示EKEventEditViewController事后在EKEventViewController
let ekEventViewController = EKEventViewController(nibName: nil, bundle: nil)
ekEventViewController.delegate = self
ekEventViewController.allowsEditing = true
ekEventViewController.event = event
setViewController(ekEventViewController)
显示它在setViewController
我加入了新的控制器作为childViewController和新的控制器作为一个子视图视图。现在我想在呈现EKEventViewController之后立即调用“编辑”操作。我没有任何子类,我只想使用EKEventEditingViewController
自动编辑。
到目前为止,我已经尝试了几种与“编辑”相关的方法。
我也试图调用editButtonItem
的Selector
,但没有成功......
ekEventViewController.perform(ekEventViewController.editButtonItem.action!
有没有办法做到这一点没有子?我甚至考虑反思,但无法弄清楚...
在此先感谢!
答
的解决办法是设置新创建EKEventEditViewController
为我现有的UINavigationViewController我所需的ViewController,因为EKEventEditViewController
类型UINavigationController
本身。
let newNC = EKEventEditViewController()
self.navigationController = newNC
之后,设定newNC
作为当前根UIViewController
的childViewController
并添加其观点,作为一个子视图。
答
一旦你创建了编辑视图控制器,你只需要呈现它。确保已经定义了你的回调,所以你作出适当的反应时,它本身驳回 - 这取决于用户采取了行动(取消,删除,添加,修改):
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)
}
谢谢你的回答。你是对的,我没有考虑直接展示这个控制器,因为我想在编辑完成后显示通常的EKEventViewController,但这对我来说很好。 – Muli
没有upvote,它帮助了我一步,但不幸的是,它不是我的问题的实际解决方案,因为我试图把它放在不是全屏的ViewController中,如果您明白的话...... – Muli
当然。我提出了你的问题。很高兴你正在取得进展。这就是我们来这里的原因。 – Mozahler