3

背景

问题

  • 我的问题是如何自定义 EKEventEditView 的颜色,该视图不是由我的代码触发的,而是由 EKEventView 中的苹果代码触发的。

API 链接

4

2 回答 2

5

我不知道 Apple 将如何响应此代码,但它确实有效 :)

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(willShowController:) 
                                             name:@"UINavigationControllerWillShowViewControllerNotification" 
                                           object:nil];

和选择器方法:

-(void)willShowController:(NSNotification*)sender{
    NSLog(@"%@ ", [sender description]);

    UIViewController *controller = (UIViewController*)[sender object];

    if ([controller isKindOfClass:EKEventEditViewController.class]){
        UITableViewController *rootController = (UITableViewController*)[(UINavigationController*)controller visibleViewController];

        UITableView *tv = (UITableView*)[rootController view];
        [tv setBackgroundColor:[UIColor redColor]];
        UIView *v = (UIView*)[[tv visibleCells] objectAtIndex:0];
        v.backgroundColor = [UIColor blueColor];
    }
}

在 SDK中只有一个字符串是UINavigationControllerWillShowViewControllerNotification找不到的。但在这种情况下,它只是字符串.. 希望这对你有帮助。

于 2011-10-28T15:48:43.417 回答
1

我不确定,因为我从来没有遇到过您要问的问题,但是由于它是 UIViewController 的子类,因此请尝试在 yourEventViewController.view 上为您着色。

让我知道这是否有帮助。

于 2011-10-25T02:38:14.567 回答