1

ActionSheetを表示しようとすると、次のエラーが発生します...

2012-11-16 04:07:03.878 MKS WebTech [814:c07]-[mksWorkOrderViewController _presentActionSheet:asPopoverFromBarButtonItem:orFromRect:inView:withPreferredArrowDirections:passthroughViews:backgroundStyle:animated:]:認識されないセレクターがインスタンス0x75a5950に送信されました

- (IBAction)ActionClick:(id)sender {

    popupSheet = [[UIActionSheet alloc] init];

    [popupSheet setDelegate:self];
    [popupSheet addButtonWithTitle:@"Contact List"];
    [popupSheet addButtonWithTitle:@"Zone Descriptions"];
    [popupSheet addButtonWithTitle:@"Zone Testing"];
    [popupSheet addButtonWithTitle:@"Panels"];
    [popupSheet addButtonWithTitle:@"Time Sheet"];
    [popupSheet addButtonWithTitle:@"Inventory"];
    [popupSheet addButtonWithTitle:@"Other Appt."];
    [popupSheet addButtonWithTitle:@"Alarm History"];
    [popupSheet addButtonWithTitle:@"Service History"];
    [popupSheet addButtonWithTitle:@"Complete"];
    [popupSheet addButtonWithTitle:@"Cancel"];
    [popupSheet setCancelButtonIndex:10];
    // Prepare your action sheet
    [popupSheet showFromBarButtonItem:bntAction animated:NO];

    [popupSheet release];
}

エラーが発生する"showFromBarButtonItem:bntAction"私も送信者で試しましたが、同じ結果になりました

また、canPerformActionは問題なく起動します...

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    return YES;
}
4

2 に答える 2

1

私は一度この問題を抱えていました、それは同じケースではありません、しかし私にとって、これはうまくいきました:

  1. InterfaceBuilderに移動します
  2. すべてのオブジェクトをチェックしてください。私にとっての問題は、後で削除した変数にオブジェクトを接続したため、存在しなかったことです。

結論:オブジェクトを存在しない変数に接続しました。

それ以外の場合、コードは正常に見えます:)

于 2012-12-08T09:04:35.763 に答える
0

将来これに遭遇する他の人のために(私がちょうどしたように):問題は、UIActionSheetがそれぞれで-canPerformAction:@selector(_presentActionSheet:asPopover ...など)を呼び出すレスポンダーチェーンをウォークアップすることです。

したがって、コントローラーが誤ってYESと応答するため、UIActionSheetは先に進み、そのメソッドを呼び出そうとします。実装は存在せず、エラーが発生します。

正しい修正は、-canPerformAction:withSender:を再実装して、実際に処理するものにのみYESを返すことです。

于 2014-05-07T20:54:27.893 に答える