gpt4 book ai didi

iphone - 为 EKEventEditViewController 设置背景颜色/图像

转载 作者:行者123 更新时间:2023-12-03 18:52:18 25 4
gpt4 key购买 nike

以下是我添加日历事件的代码。我想发送 EKEventEditViewController 的背景图像。我找到了这段代码

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

使用此代码,我能够为 EKEventViewController 设置背景图像,但它不适用于 EKEventEditViewController。任何帮助是极大的赞赏。提前致谢。

     EKEventEditViewController *editController = [[EKEventEditViewController alloc] init];
// UITableView *eventTableView = [[editController.view subviews]objectAtIndex:0];
// [eventTableView setHidden:YES];

// [eventTableView setBackgroundColor:[UIColor redColor]];
NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray: editController.viewControllers];
NSLog(@"%i", [allViewControllers count]);
UITableView *eventTableView = [[[allViewControllers objectAtIndex:0] subviews] objectAtIndex:0];
// UITableView *eventTableView = [[editController.view subviews]objectAtIndex:0];
// eventTableView.backgroundColor = [UIColor redColor];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"honeycomb.png"]];
eventTableView.backgroundColor = background;
// [background release];
editController.event = [eventsList objectAtIndex:indexPath.row];
editController.eventStore = self.eventStore;
editController.editViewDelegate = self;
itsSelectedReminder = indexPath.row;
isReminderDeleted = TRUE;
[editController.navigationBar setTintColor:[UIColor colorWithRed:67/255.0 green:114/255.0 blue:18/255.0 alpha:1]];
[self presentModalViewController:editController animated:YES];

[editController release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];

最佳答案

这个问题让我抓狂了一段时间,但我终于明白了。

诀窍是以某种方式访问​​ EKEventEditViewController 内的 TableView ,并且似乎只有一种(已记录)方法可以做到这一点:

首先,将显示 EKEventEditViewController(或您想要负责自定义的任何内容)的 View Controller 设置为 UINavigationControllerDelegate:

@interface YourViewController : UIViewController <UINavigationControllerDelegate>

其次,将 View Controller 设置为 EKEventEditViewController 的委托(delegate):

EKEventEditViewController *eventEditViewController = [[EKEventEditViewController alloc] init];
eventEditViewController.delegate = yourViewController; // Probably self

第三,在委托(delegate)中实现以下方法:

- (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 的表格 View 背景更改为蓝色,但现在您可以访问实际的导航 Controller 和内部的表格 View ,您可以做任何您想做的事情!

注意:我尚未向 Apple 提交此代码,但我没有使用任何未记录的内容,因此我不知道什么会导致问题。

享受吧!

关于iphone - 为 EKEventEditViewController 设置背景颜色/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com