最後のページがアクティブなレコードで、前のページが編集できない古いレコードであるデータ入力を処理するために 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];
}
}
そのため、アラート ボックスは、ページが 1 回だけめくるのを防ぎます。閉じられると、ユーザーはページを変更できます。私のバージョンは、これが最後のページでのみ発生することを確認するためにチェックします.「if」ステートメントを削除して、ページをめくるたびに警告することができますが、それは面倒です.