2012-03-12 11 views
0

EKCalendarChooserで新しいカレンダーを追加できるようにするには、デフォルトのiPhoneカレンダーアプリの左上隅に+が表示されているように、カレンダーを定義できますか?良いことは、あなたが呼び出すことができること、しかし、であるEKCalendarChooser新しいカレンダー

私はほとんど一日、これまで運のために同じすぐに使用できるソリューションを求めてきた

答えて

1

..

[yourEKCalendarChooserInstance setEditing:YES]; 

「カレンダーを追加」行が表示されます

しかし、悪いことに、クリック/選択で何も起こらないということです。 それは私が見つけたすべてですこれまで

UPDATE:

このコードは私のために働いた

(これまでのところ唯一のシミュレータ上でテスト):

EKEventStore *store = [[[EKEventStore alloc] init] autorelease]; 
EKCalendarChooser *chooser = [[EKCalendarChooser alloc] initWithStyle:EKCalendarChooserSelectionStyleSingle displayStyle:EKCalendarChooserDisplayWritableCalendarsOnly eventStore:store]; 
[chooser setEditing:YES]; 
[chooser setShowsDoneButton:YES]; 
[chooser setShowsCancelButton:YES]; 
UINavigationController *modalController = [[UINavigationController alloc] initWithRootViewController:chooser]; 
[self presentViewController:modalController animated:YES completion:nil]; 

はまた、もちろん、あなたが提供する必要があります。完了/キャンセルボタンの代理人。

+0

私たちの生活を楽にするために、私は、このメッセージは答えとしてマークされているに同意しないでください。それは解決策を提供しません。実際に 'EKCalendarChooser'が編集モードになっているときに' Done'と 'Cancel'ボタンは表示されません。これを実現する唯一の方法は、EKCalendarChooserの2つの別々のインスタンスをロードすることです.1つは編集用、もう1つは – pechar

2

試行錯誤、 多くの後、私は最終的にそれを得た:

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に入れて、オリジナルのカレンダーアプリのように、編集機能など、標準カレンダーの選択]ダイアログが表示されます。

@Apple:私たちに好意を行うと、ドキュメントを更新し、

+0

Weirdを選択することです。 EKCalendarChooserDelegateメソッドが呼び出されていますが、selectedCalendarsは空白です。あなたがそれらのボタンを設定する際に、デリゲートメソッドがすでに行っていることをドキュメントが何を言っているかを重複させようとしているようです。何か不足していますか? –

関連する問題