我正在尝试在我的应用中呈现新的EKCalendarChooser作为模态视图。我正在使用以下代码执行此操作:
EKCalendarChooser *calendarChooser = [[EKCalendarChooser alloc]
initWithSelectionStyle:EKCalendarChooserSelectionStyleMultiple
displayStyle:EKCalendarChooserDisplayAllCalendars
eventStore:self.ekDataSource.eventStore];
calendarChooser.showsDoneButton = YES;
calendarChooser.showsCancelButton = NO;
calendarChooser.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
calendarChooser.delegate = self;
[[self navigationController] presentViewController:calendarChooser animated:YES completion:nil];
我遇到的问题是,当显示视图时,它缺少完成按钮。但是,如果我使用以下代码显示视图:
[[self navigationController] pushViewController:calendarChooser animated:YES];
它运作得很好。显示完成按钮。不应该使用 presentViewController 调用显示完成按钮吗?
提前感谢您的帮助!
PMB
答案 0 :(得分:1)
答案 1 :(得分:0)
如果当前视图控制器位于导航控制器内,则应继续使用该导航控制器,除非您确实需要更多屏幕空间。然后,您应该使用动画以模态方式显示新的视图控制器,它告诉用户他们正在离开导航控制器的上下文。
[self.navigationController pushViewControllerAnimated:how];
答案 2 :(得分:0)
使用EKClaenderChooserDelegate方法。使用此方法我解决了我的问题
(void)calendarChooserDidFinish:(EKCalendarChooser *)calendarChooser
{ [self.navigationController popToRootViewControllerAnimated:YES];
}