Używam domyślnej EKEventEditViewController
w mojej aplikacji i chcę ją dostosować, obecnie pokazuje wszystkie pola, które były domyślnie EKEventEditViewController
, ale nie chcę wyświetlać pola adresu URL, a także chcę dodać pole strefy czasowej . Czy mogę to zrobić, a jeśli tak, to proszę mi powiedzieć, jak mogę to zrobić? Jak dostosować EKEventEditViewController
7
A
Odpowiedz
4
można wykorzystać ten fragment:
1) Sprawdź swoją viewcontroller delegata swojego EKEventEditViewController
EKEventEditViewController *addController = [[EKEventEditViewController alloc] init];
addController.delegate = self;
2) następnie wdrożyć to na kontrolerze widoku:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
if ([viewController isKindOfClass:[UITableViewController class]]) {
UITableView *tableView = ((UITableViewController *)viewController).tableView;
for (NSInteger j = 0; j < [tableView numberOfSections]; ++j)
{
for (NSInteger i = 0; i < [tableView numberOfRowsInSection:j]; ++i)
{
UITableViewCell *cell = [tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]];
NSLog(@"cell => %@, row => %d, section => %d", cell.textLabel.text, i, j);
if([cell.textLabel.text isEqualToString:@"Calendar"]) {
[cell removeFromSuperview];
} else if(j == 5) { // If URL Field
[cell removeFromSuperview];
}
}
}
}
}
Uwaga: Znalazłem to wcześniej w innej odpowiedzi od Stackoverflow i zaimplementowałem ją w moim projekcie. Zapomniałem linku. Mam nadzieję, że to pomaga i dzięki oryginalnej odpowiedzi, w której to otrzymałem.
Dzięki! Działa dla widocznych wierszy, jeśli przewijam de tableView wiersze pojawiają się ponownie, być może z powodu metody cellForRow .. jakiekolwiek inne rozwiązanie !? Dzięki! – Frade
Logi komórki (null) dla tych, które nie są wyświetlane w widoku. jakieś poprawki do tego? –