我使用了MBCalendarKit。这是tableView方法- (void)calendarView:(CKCalendarView *)CalendarView didSelectEvent:(CKCalendarEvent *)event
上显示的一个事件。此方法的工作原理与- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
相同。我想在tableView单元格单击事件上调用方法didSelectEvent
。如何在单击单元格时移动到另一个视图控制器?并传递单元阵列数据。这怎么可能?请帮忙。谢谢
方法
- (void)calendarView:(CKCalendarView *)CalendarView didSelectEvent:(CKCalendarEvent *)event
{
// A row is selected in the events table. (Use to push a detail view or whatever.)
CalendarViewController*destVC = [[CalendarViewController alloc] init];
destVC.pure=arr;
[self presentViewController:destVC animated:YES completion:nil];
}
在表视图中didSelectRowAtIndexPath
方法:-
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
调用您的函数:-
[self didSelectEvent:..
也要移动到另一个视图控制器,请在tableView的相同didSelectRowAtIndexPath方法中使用如下segue:-
[self performSegueWithIdentifier:@"segueName" sender:self];
最后,要通过单元格数组,请使用prepareForSegue:-
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"segueName"])
{
DestViewController *dest = segue.destinationViewController;
dest.passedArr = Arr;
}
}
注意:"segueName"需要在Storyboard 中定义
如果要从calendarView:didSelectEvent:
内部实现CKCalendarViewDelegate
或子类化CKCalenderViewController
,则可以将新的视图控制器推送到导航堆栈上,也可以使用presentViewController:animated:completion:
自己呈现。
如果要将事件传递给第二个视图控制器,请在显示或推动视图控制器之前将其指定为属性。
披露:我是MBCalendarKit的作者