【发布时间】:2013-04-13 21:02:34
【问题描述】:
我正在使用 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”语句并在每次翻页时发出警报,但这会很烦人。
【问题讨论】:
标签: ios objective-c uipageviewcontroller