iphone - learn - Cómo personalizar UITableView de EKEventViewController?
learn ios (3)
¿Hay alguna forma de cambiar el color / imagen de fondo de los detalles UITableView en EKEventViewController? Puedo cambiar el UITableView principal pero no el detalle UITableView debido a que no tengo salida para la tabla. Por ejemplo, aquí está el código fuente de ejemplo de Apple para una aplicación de evento
Esto es lo que puedes usar,
UITableView *eventTableView = [[yourEventController.view subviews]objectAtIndex:0];
este eventTableView
es una referencia a la EKEventViewController
de su EKEventViewController. Ahora puede personalizarlo.
Gracias,
La respuesta de Michael Gray no funcionó para mí en iOS7, para un EKEventEditViewController
tal vez la implementación de EKEventEditViewController sea diferente.
aquí está el código que he usado:
for (UIViewController *controller in ekEventEditViewController.childViewControllers) {
if ([controller isKindOfClass:[UITableViewController class]]) {
NSLog(@"UITableViewController in EKEventViewController");
}
}
No debería simplemente agarrar la subvista en el índice: 0. Esto puede funcionar en su código actual, pero puede romperse en futuras versiones de IOS, si Apple realiza cambios en la Vista.
Esto es más "a prueba de futuro"
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) {
}
}
}
¡Recuerda todas las pruebas y capturas! Si apple realiza cambios en EKEventViewController, el código probablemente aún funcione, y tampoco se bloqueará si los cambios rompen la compatibilidad con versiones anteriores.