0

iOS:いくつかのコンテンツを開くアプリがあり、保存されたキャッチからメッセージコンテンツを削除できるボタンを右のナビゲーションバーに追加しました。メッセージを削除する前にユーザーに適合するコンフォメーションアクションを配置したいので、次のようなUIActionsheetを作成しました:

sheet = [[UIActionSheet alloc] initWithTitle:@"Delete Message" delegate:self cancelButtonTitle:@"Cancel"   destructiveButtonTitle:@"Delete Message" otherButtonTitles:nil];
 // view sheet 
 [sheet showInView:self.view];
 NSLog(@"Button %d", buttonIndex);

deleteContent 関数でこの値を使用するにはどうすればよいですか? 私の削除機能は

-(void) deleteContent 
{
   if (buttonIndex=0)
     {
      [[NSFileManager defaultManager] removeItemAtPath:fileName error:&e];
     }
}

私の質問は、これを 1 回の呼び出しで呼び出すことができ、これをすべて実行できる 1 つの関数だけに再配置するにはどうすればよいかということです。

4

2 に答える 2

1

それはそれを行う方法ではありません。ナビゲーション バーのボタンから関数を呼び出して、アクション シートを表示します。次に、UIActionSheetDelegate メソッド actionSheetDidDismissWithButtonIdex を実装して、実際の削除を処理します。

編集: アクション シートを表示するメソッドから削除する項目の ID を渡す必要がある場合は、presentActionSheet メソッドにパラメーターを追加して項目を渡すだけです。

于 2012-09-25T02:01:12.500 に答える
0

同じ問題を抱えている人:

次のようにポップアップを呼び出すことができるボタンの関数を作成します。

-(void)popUp
{

    sheet = [[UIActionSheet alloc] initWithTitle:@"Are you Sure?"
                                        delegate:self
                               cancelButtonTitle:@"Cancel"
                          destructiveButtonTitle:@"Delete Message"
                               otherButtonTitles:nil];
    // Show the sheet
    [sheet showInView:self.view];
    //[sheet release];
    NSLog(@"Button %d", buttonIndex);
}

そして、次のようなポップアップアクションに基づいてパーツの削除を処理するもう1つの関数を作成します。

   - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
    {
        if (buttonIndex == 0) {  //delete it

            //delete from database
            //delete from folder
            [[NSFileManager defaultManager] removeItemAtPath:fileName error:&e];
            //close
            [[self navigationController] popViewControllerAnimated: YES];
        }else if {
             NSLOG(@"USER said No");
        }

    }
于 2012-09-25T05:06:54.770 に答える