我正在尝试在我的项目中使用Kal日历。到目前为止,我理解的情况如下:
问题:
为了解决这个问题,我尝试从主表视图中的单元格推送中间视图控制器,如下所示:
ScheduleViewController *svc = [[ScheduleViewController alloc] init];
[svc setTitle:@"Schedule"];
[self.navigationController pushViewController:svc animated:YES];
从ScheduleViewController的viewDidLoad,我正在推动实际的Kal日历:
KalViewController *kal = [[KalViewController alloc] init];
[kal setDelegate:self];
[kal setTitle:@"Schedule"];
[self.navigationController pushViewController:kal animated:NO];
所以,一旦我这样做,我就可以让日历显示出来。但是,我似乎无法使用后退按钮干净地回到我的主菜单。我在ScheduleViewController中创建了一个后退按钮:
[kal.navigationItem
setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(test)]];
我把它放在几个不同的地方(viewDidLoad,viewWillAppear)并且无法让它工作。当我单击“返回”时,它仍然会转到ScheduleViewController而不是一直返回。 “测试”永远不会被调用。我试过popToRootViewController,[[self.presentingViewController presentsViewController] dismissViewController]和其他几个。只是不想工作。
谢谢!这是我的第一篇文章,所以请告诉我是否有什么办法可以让这个问题不那么混乱。
答案 0 :(得分:0)
而不是我的主视图控制器(w /现有的tableview)是委托,我使KalDataSource也成为UITableViewDelegate。所以我的DataSource处理填充日历和选择事件。
在主视图控制器
将“didSelectRowAtPath”方法更改为:
dataSource = [[EventsDataSource alloc] init];
KalViewController * kal = [[KalViewController alloc] init]; [kal setDelegate:dataSource]; [kal setDataSource:dataSource]; [kal setTitle:@“Schedule”]; [self.navigationController pushViewController:kal animated:YES];
现在的所有内容都可以。