0

ユーザーがナビゲーションコントローラーの戻るボタンを押したときに、保存したいことがあります。これは実装することによってのみ可能ですか

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    int index = [[self.navigationController.viewControllers] indexOfObject:[self.navigationController.visibleViewController]];
    if(viewController == [[self.navigationController.viewControllers] objectAtIndex:index-1])
        //saving code here

そのため、デリゲートは、前のビュー コントローラーを表示しようとしているときに呼び出されます。ビュー コントローラがいつポップされるかを知るより洗練された方法はありますか?

また、UIImagePickerController を表示するボタンがあるため、viewWillDisappear を使用できず、保存を行いたくないのです。何かご意見は?

4

2 に答える 2

1

または

- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem     *)item
{
  //insert your back button handling logic here
  // let the pop happen
  return YES;
}     
于 2012-01-12T20:08:41.307 に答える
0

viewWillDisappear:通常、ViewControllerの" "メソッドでそのようなことを行います。

はい、それはあなたが前進している場合にもアクティブになりますが、何か他のものを起動するつもりかどうかをメソッドに知らせるためにフラグを立てることができます-そしてとにかくその時点で何があっても保存することはおそらく良い考えです...

于 2010-08-09T21:11:28.263 に答える