Этот на какое-то время сводил меня с ума, но я наконец понял.
Хитрость заключается в том, чтобы каким-то образом получить доступ к табличному представлению внутри EKEventEditViewController, и, похоже, существует только один (задокументированный) способ сделать это:
Сначала установите контроллер представления, представляющий EKEventEditViewController
(или все, что вы хотите отвечать за настройку) как UINavigationControllerDelegate
:
@interface YourViewController : UIViewController <UINavigationControllerDelegate>
Во-вторых, установите ваш контроллер представления в качестве делегата EKEventEditViewController
:
EKEventEditViewController *eventEditViewController = [[EKEventEditViewController alloc] init];
eventEditViewController.delegate = yourViewController; // Probably self
В-третьих, реализовать следующий метод в делегате:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[UITableViewController class]]) {
((UITableViewController *)viewController).tableView.backgroundColor = [UIColor blueColor];
((UITableViewController *)viewController).tableView.backgroundView = nil;
}
}
В этом примере цвет фона табличного представления EKEventEditViewController
изменится на синий, но теперь, когда у вас есть доступ к фактическому контроллеру навигации и представлению таблицы внутри, вы можете делать все, что захотите!
Примечание: я еще не отправил этот код в Apple, но я не использую ничего недокументированного, поэтому не вижу, что может вызвать проблему.
Наслаждайтесь!