0

これは初歩的な質問です。UIActionSheet を作成しました。押されたときに「削除」を実行するにはどうすればよいですか。

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    if (event.subtype == UIEventSubtypeMotionShake )
    {
        // Handle shake notification
    UIActionSheet *shakeActionSheet = [[UIActionSheet alloc] initWithTitle:nil
                                                                  delegate:self
                                                         cancelButtonTitle:@"Cancel"
                                                    destructiveButtonTitle:@"Delete"
                                                         otherButtonTitles:nil];

    [shakeActionSheet showInView:self];
    }

    if ([super respondsToSelector:@selector(motionEnded:withEvent:)])
        [super motionEnded:motion withEvent:event];
}
4

3 に答える 3

2

UIActionSheetデリゲート メソッドを呼び出してみる

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{

    NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];

    if([title isEqualToString:@"Delete"])
    {
     //do your stuff in here

     }

}
于 2013-02-01T17:59:36.567 に答える
1

クラスはUIActionSheetDelegateプロトコルに準拠する必要があります。

次に、メソッドをオーバーライドしactionSheet:clickedButtonAtIndex:、クリックされたボタンを評価して、それに応じて動作します。

詳細については、こちらを参照してください。

于 2013-02-01T17:55:18.340 に答える
0

他の 2 つのソリューションに追加するだけで、次のようにメソッドにデリゲートを追加できます (クラスがプロトコル- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)eventを実装していると仮定します)。UIActionSheetDelegate

shakeActionSheet.delegate = self;
于 2013-02-01T18:26:55.360 に答える