我正在尝试在项目中使用KAL日历。到目前为止,这是我所理解的:
- 呼叫KAL的视图控制器的哪个必须实现uiatelviewdelegate方法" didselectrowatpath"
问题:
- 我的视图控制器称为kal 有一个现有的tableview(其中一个单元格会称为kal)
为了解决这个问题,我试图从我的主表观中的单元格中推动一个中间视图控制器,如下所示:
ScheduleViewController *svc = [[ScheduleViewController alloc] init];
[svc setTitle:@"Schedule"];
[self.navigationController pushViewController:svc animated:YES];
从SchedueViewController的ViewDidload中,我正在推动实际的KAL日历:
KalViewController *kal = [[KalViewController alloc] init];
[kal setDelegate:self];
[kal setTitle:@"Schedule"];
[self.navigationController pushViewController:kal animated:NO];
所以一旦我这样做,我就可以得到日历。但是,我似乎无法使用"后退"按钮清洁地回到我的主菜单。我在SchedueViewController中创建了一个返回按钮:
[kal.navigationItem
setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(test)]];
我将其放在几个不同的地方(ViewDidload,ViewWillAppear),无法使其工作。当我单击"返回"时,它仍然转到ScheduleViewController,而不是一直返回。"测试"永远不会被调用。我已经尝试了PopTorootViewController,[[[self.presentingViewController呈现ViewController] ipplineViewViewController]和其他一些。只是不想工作。
- 这是使用kal的最佳方法吗?
- 如何使用此方法poptorootViewController(跳过ScheduleViewController)?
谢谢!这是我的第一篇文章,所以请告诉我,如果我可以做些什么使问题降低混乱。
好吧,我认为终于得到了。我最终删除了中间视图控制器。我想我只是不明白之前发生了什么...我现在已经完成了以下操作:
-
而不是我的主视图控制器(W/现有表观视图)是代表,而是使Kaldatasource也成为UITAITHVIEWDELEGATE。因此,我的数据源处理填充日历和选择事件的选择。
-
在Main View Controller中的IVAR中添加ID DataSource
-
将" didSelectRowatPath"方法更改为:
dataSource = [[EventsDatasource alloc] init];
kalviewController *kal = [[KalviewController alloc] init];[KAL SETDELEGATE:DATASOURCE];[kal setDatasource:dataSource];[KAL SETSTITLE:@" schedule"];[self.navigationcontroller pushViewController:kal animated:yes];
现在的一切出现都可以。