我正在使用 UIPageViewController 处理数据输入,其中最后一页是活动记录,前一页是无法编辑的旧记录。所以我需要一种方法来验证用户是否想要离开最后一页,同时允许所有其他页面像往常一样导航。
理想情况下,我真的可以使用 -(BOOL)pageShouldTurn 方法,但这不存在。
有谁知道一种方法来检测页面是否即将卸载然后根据某些条件停止翻页?我对手势识别器方法没有任何运气,因为即使设置了委托,它们似乎也不会被触发。
感谢 Michael,我已将此添加到我的 pageViewController 中,它完全符合我的需要:
-(void)pageViewController:(UIPageViewController *)pvc willTransitionToViewControllers:(NSArray *)pendingViewControllers
{
if ([pvc.viewControllers.lastObject pageIndex] == [self.pageDataSource.allObjects count]) {
UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
initWithTitle:@"Are You Done?"
message:@"Once you leave this page you can't edit this record again"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alertDialog show];
}
}
所以警告框只停止翻页一次。当它被关闭时,用户可以更改页面。我的版本检查以确保这只发生在最后一页,您可以删除“if”语句并在每次翻页时发出警报,但这会很烦人。