2017-05-16 15 views
2

私はボタンをクリックして動作させようとしていますが、次のエラーが表示されます。スウィフト "インスタンスに送信された認識できないセレクタ"ボタンをクリック

は、相続人の重要なコード

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 
         button.center = CGPoint(x: 260, y: 220) 

         button.setTitle(NSLocalizedString("READ ONLINE", comment: "Button"), for: .normal) 
         button.backgroundColor = UIColor(red: 0.0, green: 0.600, blue: 0.800, alpha: 1.0) 
         button.addTarget(self, action: "buttonAction:", for: UIControlEvents.touchUpInside) 
         button.tag = 22; 

         func buttonAction(_sender:UIButton!) 
         { 
          var btnsendtag:UIButton = _sender 
          if btnsendtag.tag == 22 { 
           print("Button tapped tag 22") 
          } 
         } 

は、ここで私が得ているエラーですです。

unrecognized selector sent to instance 0x7fec8fc14950' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010b1b034b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x000000010ac1121e objc_exception_throw + 48 
    2 CoreFoundation      0x000000010b21ff34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 
    3 CoreFoundation      0x000000010b135c15 ___forwarding___ + 1013 
    4 CoreFoundation      0x000000010b135798 _CF_forwarding_prep_0 + 120 
    5 UIKit        0x000000010b834b88 -[UIApplication sendAction:to:from:forEvent:] + 83 
    6 UIKit        0x000000010b9ba2b2 -[UIControl sendAction:to:forEvent:] + 67 
    7 UIKit        0x000000010b9ba5cb -[UIControl _sendActionsForEvents:withEvent:] + 444 
    8 UIKit        0x000000010b9b94c7 -[UIControl touchesEnded:withEvent:] + 668 
    9 UIKit        0x000000010b8a20d5 -[UIWindow _sendTouchesForEvent:] + 2747 
    10 UIKit        0x000000010b8a37c3 -[UIWindow sendEvent:] + 4011 
    11 UIKit        0x000000010b850a33 -[UIApplication sendEvent:] + 371 
    12 UIKit        0x000000010c042b6d __dispatchPreprocessedEventFromEventQueue + 3248 
    13 UIKit        0x000000010c03b817 __handleEventQueue + 4879 
    14 CoreFoundation      0x000000010b155311 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    15 CoreFoundation      0x000000010b13a59c __CFRunLoopDoSources0 + 556 
    16 CoreFoundation      0x000000010b139a86 __CFRunLoopRun + 918 
    17 CoreFoundation      0x000000010b139494 CFRunLoopRunSpecific + 420 
    18 GraphicsServices     0x0000000110fe1a6f GSEventRunModal + 161 
    19 UIKit        0x000000010b832f34 UIApplicationMain + 159 
    20 BebrightbookOffline     0x000000010a6288df main + 111 
    21 libdyld.dylib      0x000000010e2ed68d start + 1 
    22 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

私は関数が正しく参照されていないと思うが、私はなぜアイデアが出ていない。私は迅速

+0

を試してみてください? – Lion

+0

@Tiago Roque - 以下の答えに従ってボタンのアクションを置き換えてみてください。あなたの問題は解決されます。 – Krunal

答えて

2

を問題は、あなたは正しい方法でボタンにアクションを追加していないということです。その

button.addTarget(self, action: #selector(buttonAction), for: UIControlEvents.touchUpInside) 
+0

最後にうまくいった。変更ボタンに追加buttonAction to self.buttonAction –

1

経験がない、次のようにボタンアクションの割り当てを置き換えます

button.addTarget(self, action: #selector(self.buttonAction(_sender:)), for: UIControlEvents.touchUpInside) 
0

のようにそれを行う、

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) 
    button.center = CGPoint(x: 260, y: 220) 

    button.setTitle(NSLocalizedString("READ ONLINE", comment: "Button"), for: .normal) 
    button.backgroundColor = UIColor(red: 0.0, green: 0.600, blue: 0.800, alpha: 1.0) 
    // button.addTarget(self, action: Selector(("buttonAction:")), for: UIControlEvents.touchUpInside) 

    button.addTarget(self, action: #selector(buttonAction(sender:)), for: .touchUpInside) 
    button.tag = 22; 

とあなたの関数、このようにあなたがあなたのビューにボタンを追加している

func buttonAction(sender:UIButton) 
{ 
    let btnsendtag:UIButton = sender 
    if btnsendtag.tag == 22 { 
     print("Button tapped tag 22") 
    } 
} 
関連する問題