Dil*_*mar 5 iphone calendar ekeventkit
以下是我添加日历事件的代码.我想为EKEventEditViewController发送一个背景图片.我找到了这段代码
UITableView *eventTableView = [[editController.view subviews]objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
使用此代码,我能够为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];
Run Code Online (Sandbox Code Playgroud)
Jus*_*ael 12
这个让我疯了一会儿,但我终于明白了.
诀窍是以某种方式访问EKEventEditViewController中的表视图,并且似乎只有一种(记录的)方法:
首先,将视图控制器设置为EKEventEditViewController(或者您想要负责自定义的任何内容)UINavigationControllerDelegate:
@interface YourViewController : UIViewController <UINavigationControllerDelegate>
Run Code Online (Sandbox Code Playgroud)
其次,将视图控制器设置为EKEventEditViewController委托:
EKEventEditViewController *eventEditViewController = [[EKEventEditViewController alloc] init];
eventEditViewController.delegate = yourViewController; // Probably self
Run Code Online (Sandbox Code Playgroud)
三,在委托中实现以下方法:
- (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;
}
}
Run Code Online (Sandbox Code Playgroud)
此示例将把EKEventEditViewController表视图背景更改为蓝色,但现在您可以访问实际的导航控制器和内部的表视图,您可以执行任何操作!
注意:我还没有将此代码提交给Apple,但我没有使用任何未记录的内容,因此我看不出会导致问题的原因.
请享用!
| 归档时间: |
|
| 查看次数: |
2254 次 |
| 最近记录: |