Ios EKCalendarChooser新日历

Ios EKCalendarChooser新日历,ios,ios5,eventkit,Ios,Ios5,Eventkit,是否可以在EKCalendarChooser中显示启用添加新日历,就像默认的iPhone日历应用在左上角显示+并允许您定义日历一样?我一直在寻找相同的即用解决方案,几乎一天了,到目前为止运气都不好 不过,好的是,你可以打电话 [yourEKCalendarChooserInstance setEditing:YES]; 它将显示“添加日历”行 但糟糕的是,单击/选择时不会发生任何事情。 到目前为止我只知道这些 更新: 此代码对我有效(目前仅在模拟器上测试): 当然,除此之外,您还需要为“完成/

是否可以在EKCalendarChooser中显示启用添加新日历,就像默认的iPhone日历应用在左上角显示+并允许您定义日历一样?

我一直在寻找相同的即用解决方案,几乎一天了,到目前为止运气都不好

不过,好的是,你可以打电话

[yourEKCalendarChooserInstance setEditing:YES];
它将显示“添加日历”行

但糟糕的是,单击/选择时不会发生任何事情。 到目前为止我只知道这些

更新:

此代码对我有效(目前仅在模拟器上测试):


当然,除此之外,您还需要为“完成/取消”按钮提供代理。

我一直在寻找相同的即用解决方案,几乎一天了,到目前为止运气都不好

不过,好的是,你可以打电话

[yourEKCalendarChooserInstance setEditing:YES];
它将显示“添加日历”行

但糟糕的是,单击/选择时不会发生任何事情。 到目前为止我只知道这些

更新:

此代码对我有效(目前仅在模拟器上测试):


此外,当然,您还需要为“完成/取消”按钮提供代理。

经过多次尝试和错误, 我终于明白了:

var calendarChooser: EKCalendarChooser!
var navController: UINavigationController!

func setup () {
    calendarChooser =  EKCalendarChooser(
        selectionStyle: EKCalendarChooserSelectionStyleMultiple,
        displayStyle: EKCalendarChooserDisplayAllCalendars,
        entityType: EKEntityTypeEvent,
        eventStore: zeitplanController.cache.eventStore)
    // DON'T DO THE FOLLOWING:
    // calendarChooser.editing = false
    navController = UINavigationController(rootViewController: calendarChooser)
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEditing")
}

func startEdit () {
    calendarChooser.editing = true
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "endEdit") }

func endEdit () {
    calendarChooser.editing = false
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEdit")
}
这将显示一个UIPopoverController中的标准日历选择器对话框,包括编辑功能,就像在原始日历应用程序中一样


@苹果:请帮我们一个忙,更新文档,让我们的生活更轻松

在经历了大量的尝试和错误之后, 我终于明白了:

var calendarChooser: EKCalendarChooser!
var navController: UINavigationController!

func setup () {
    calendarChooser =  EKCalendarChooser(
        selectionStyle: EKCalendarChooserSelectionStyleMultiple,
        displayStyle: EKCalendarChooserDisplayAllCalendars,
        entityType: EKEntityTypeEvent,
        eventStore: zeitplanController.cache.eventStore)
    // DON'T DO THE FOLLOWING:
    // calendarChooser.editing = false
    navController = UINavigationController(rootViewController: calendarChooser)
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEditing")
}

func startEdit () {
    calendarChooser.editing = true
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: "endEdit") }

func endEdit () {
    calendarChooser.editing = false
    calendarChooser.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Edit, target: self, action: "startEdit")
}
这将显示一个UIPopoverController中的标准日历选择器对话框,包括编辑功能,就像在原始日历应用程序中一样


@苹果:请帮我们的忙,更新文档,让我们的生活更轻松

我不同意将此消息标记为答案。它没有提供解决方案。事实上,
EKCalendarChooser
处于编辑模式时,
Done
Cancel
按钮甚至不会出现。实现这一点的唯一方法是加载EKCalendarChooser的两个独立实例,一个用于编辑,一个用于选择我不同意将此消息标记为应答。它没有提供解决方案。事实上,
EKCalendarChooser
处于编辑模式时,
Done
Cancel
按钮甚至不会出现。实现这一点的唯一方法是加载EKCalendarChooser的两个独立实例,一个用于编辑,另一个用于选择。正在调用EKCalendarChooserDelegate方法,但SelectedCalendar为空。看起来您试图在设置这些按钮时重复文档中所说的委托方法已经完成的操作。我错过什么了吗?奇怪。正在调用EKCalendarChooserDelegate方法,但SelectedCalendar为空。看起来您试图在设置这些按钮时重复文档中所说的委托方法已经完成的操作。我错过什么了吗?