Как настроить UITableView EKEventViewController? - PullRequest
5 голосов
/ 20 апреля 2011

Есть ли способ изменить цвет фона / изображение деталей UITableView в EKEventViewController? Я могу изменить основной UITableView, но не детализировать UITableView из-за отсутствия выхода для таблицы. Например, вот пример исходного кода Apple для Event App

Ответы [ 3 ]

5 голосов
/ 30 мая 2011

Вы не должны просто захватывать подпредставление с индексом: 0.Это может работать в вашем текущем коде, но может сломаться в будущих выпусках IOS, если Apple внесет изменения в View.

Это более «перспективно»

for (UIView *searchTableView in [yourEventController.view subviews]) {

    if ([eventTableView isKindOfClass:[UITableView class]]) {
        @try {
            // change stuff to eventTableView

            for (UIView *eventTableViewCell in [eventTableView subviews]) {

                if ([eventTableViewCell isKindOfClass:[UITableViewCell class]]) {
                    @try {
                        [(UITableViewCell *)eventTableViewCell setBackgroundColor:[UIColor clearColor]];
                    }
                    @catch (NSException * e) {
                    }
                }
            }


        }
        @catch (NSException * e) {
        }
    }
} 

Запомните всепопробуй и поймай!Если Apple внесет изменения в EKEventViewController, код, вероятно, все еще будет работать, и он также не будет аварийно завершать работу, если изменения нарушают обратную совместимость.

3 голосов
/ 20 апреля 2011

Вот то, что вы можете использовать,

UITableView *eventTableView = [[yourEventController.view subviews]objectAtIndex:0];

this eventTableView является ссылкой на tableView вашего EKEventViewController, теперь вы можете настроить его.

Спасибо

0 голосов
/ 15 января 2014

Ответ Майкла Грея не работает для меня на iOS7, для EKEventEditViewController

возможно, реализация EKEventEditViewController отличается.

вот код, который я использовал:

for (UIViewController *controller in ekEventEditViewController.childViewControllers) {
            if ([controller isKindOfClass:[UITableViewController class]]) {
                 NSLog(@"UITableViewController in EKEventViewController");
            }
}  
...