EKEventEditViewController не поддерживает передачу в NavController? См код и ошибка прилагается - PullRequest
3 голосов
/ 03 ноября 2011

EKEventEditViewController не поддерживает отправку в NavController?См. Код и сообщение об ошибке.

Я могу нормально представить EKEventEditViewController, НО, когда я пытаюсь протолкнуть через навигационный контроллер, я получаю следующую ошибку:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported'

Код:

EKEventEditViewController *addController = [[[EKEventEditViewController alloc] initWithNibName:nil bundle:nil] autorelease];
addController.eventStore = self.eventStore;
addController.editViewDelegate = self;

[self.navigationController pushViewController:addController animated:TRUE];   // ERROR HERE

Ответы [ 3 ]

3 голосов
/ 03 ноября 2011

EKEventEditViewController является подклассом UINavigationController, поэтому его нельзя передать другому UINavigationController.

EKEventEditViewController должен быть представлен модально.

EKEventEditViewController Класс Ref 1007

0 голосов
/ 10 сентября 2013

Для будущих читателей:

EKEventEditViewController - это UINavigationController, поэтому вы можете просто сказать:

EKEventEditViewController *controller = [[EKEventEditViewController alloc] init];

// Set your properties here

[self.navigationController pushViewController:controller.viewControllers[0] animated:YES];

Это работает для меня, но я не знаю, сможете ли вы сделать это для Apple.

0 голосов
/ 17 мая 2012

В случае, если вам нужен какой-то код для быстрого запуска реализации iPad-с-поповер:или отменяет редактирование события:

- (void) eventEditViewController: (EKEventEditViewController *)controller didCompleteWithAction: (EKEventEditViewAction)action 
{
    EKEvent *thisEvent = controller.event;

    switch (action) {
        case EKEventEditViewActionCanceled:
            NSLog(@"Canceled action");
            break;

        case EKEventEditViewActionSaved:
            NSLog(@"Saved action: %@", thisEvent.startDate);
            break;

        case EKEventEditViewActionDeleted:
            NSLog(@"Deleted action");
            break;

        default:
            break;
    }

    [popover dismissPopoverAnimated: YES];
}

Наслаждайтесь!

Отметьте

...