【问题标题】:Programmatically show EKEventEditViewController in EKEventViewController以编程方式在 EKEventViewController 中显示 EKEventEditViewController
【发布时间】:2017-08-01 14:04:00
【问题描述】:

我正在创建一个带有事件的新 EKEventViewController 并在之后显示它

 let ekEventViewController = EKEventViewController(nibName: nil, bundle: nil)
 ekEventViewController.delegate = self
 ekEventViewController.allowsEditing = true
 ekEventViewController.event = event

 setViewController(ekEventViewController)

setViewController 中,我将新控制器添加为 childViewController,并将新控制器的视图添加为子视图。现在我想在呈现 EKEventViewController 后立即调用“EDIT”操作。我没有子类化任何东西,我只想使用EKEventEditingViewController 自动进行编辑。

到目前为止,我已经尝试了几种与“编辑”相关的方法。

我也尝试调用editButtonItemSelector,但没有成功...

ekEventViewController.perform(ekEventViewController.editButtonItem.action!

有没有办法在没有子类化的情况下做到这一点?我什至在考虑反思,但无法弄清楚......

提前致谢!

【问题讨论】:

    标签: swift eventkit ekeventkit


    【解决方案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)
        }
    

    【讨论】:

    • 感谢您的回答。你是对的,我没有考虑直接展示这个控制器,因为我希望在编辑完成后显示通常的 EKEventViewController,但这样对我来说很好。
    • 投了赞成票,它帮助了我一步,但不幸的是,这不是我的问题的实际解决方案,因为我试图把它放在一个不是全屏的 ViewController 中,如果你明白的话......
    • 当然。我赞成你的问题。很高兴你在进步。这就是我们在这里的原因。 ?
    【解决方案2】:

    解决方案是将新创建的 EKEventEditViewController 设置为我想要的 ViewController 的现有 UINavigationViewController,因为 EKEventEditViewController 本身就是 UINavigationController 类型。

    let newNC = EKEventEditViewController()
    self.navigationController = newNC
    

    然后,将newNC 设置为您当前根UIViewControllerchildViewController,并将其视图添加为子视图。

    【讨论】:

      猜你喜欢
      • 2018-03-13
      • 2011-09-05
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多