以编程方式在 EKEventViewController 中显示 EKEventEditViewController
Programmatically show EKEventEditViewController in EKEventViewController
我正在创建一个带有事件的新 EKEventViewController 并在之后显示它
let ekEventViewController = EKEventViewController(nibName: nil, bundle: nil)
ekEventViewController.delegate = self
ekEventViewController.allowsEditing = true
ekEventViewController.event = event
setViewController(ekEventViewController)
在 setViewController
中,我将新控制器添加为 childViewController 并将新控制器的视图添加为子视图。现在我想在呈现 EKEventViewController 后立即调用 "EDIT" 操作。我没有继承任何东西,我只是想使用 EKEventEditingViewController
.
自动编辑
到目前为止,我已经尝试了几种与"editing"相关的方法。
我也尝试调用 editButtonItem
的 Selector
,但没有成功...
ekEventViewController.perform(ekEventViewController.editButtonItem.action!
有没有不用子类化就可以做到的方法?我什至想过反思,但想不通...
提前致谢!
一旦你创建了编辑视图控制器,你只需要展示它。确保您已经定义了回调,以便在它自行消失时做出适当的反应 - 取决于用户采取的操作(取消、删除、添加、修改):
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)
}
解决方案是将新创建的 EKEventEditViewController
设置为我想要的 ViewController 的现有 UINavigationViewController,因为 EKEventEditViewController
本身就是 UINavigationController
类型.
let newNC = EKEventEditViewController()
self.navigationController = newNC
然后,将 newNC
设置为当前根 UIViewController
的 childViewController
并将其视图添加为子视图。
我正在创建一个带有事件的新 EKEventViewController 并在之后显示它
let ekEventViewController = EKEventViewController(nibName: nil, bundle: nil)
ekEventViewController.delegate = self
ekEventViewController.allowsEditing = true
ekEventViewController.event = event
setViewController(ekEventViewController)
在 setViewController
中,我将新控制器添加为 childViewController 并将新控制器的视图添加为子视图。现在我想在呈现 EKEventViewController 后立即调用 "EDIT" 操作。我没有继承任何东西,我只是想使用 EKEventEditingViewController
.
到目前为止,我已经尝试了几种与"editing"相关的方法。
我也尝试调用 editButtonItem
的 Selector
,但没有成功...
ekEventViewController.perform(ekEventViewController.editButtonItem.action!
有没有不用子类化就可以做到的方法?我什至想过反思,但想不通...
提前致谢!
一旦你创建了编辑视图控制器,你只需要展示它。确保您已经定义了回调,以便在它自行消失时做出适当的反应 - 取决于用户采取的操作(取消、删除、添加、修改):
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)
}
解决方案是将新创建的 EKEventEditViewController
设置为我想要的 ViewController 的现有 UINavigationViewController,因为 EKEventEditViewController
本身就是 UINavigationController
类型.
let newNC = EKEventEditViewController()
self.navigationController = newNC
然后,将 newNC
设置为当前根 UIViewController
的 childViewController
并将其视图添加为子视图。