表格视图单元格选择并移动到另一个视图



我使用了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的作者

最新更新