2017-12-05 11 views
1

私はこのコードを以下でクリッカブルUILabelを作成しようとしている:Swift 3でクリック可能なUILabelを作成するにはどうすればよいですか?

class ViewNotificationsDetails: UIViewController {  
    @IBOutlet weak var back: UILabel! 

     override func viewDidLoad() { 
      super.viewDidLoad() 

      let tap = UITapGestureRecognizer(target: self, action: #selector(ViewNotificationsDetails.tapFunction)) 
      back.isUserInteractionEnabled = true 
      back.addGestureRecognizer(tap) 
     } 

     @objc func tapFunction(sender:UITapGestureRecognizer) { 
      print("tap working") 
     } 
} 

しかし、コードを実行するとき、私はエラーを取得する - >

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value on the line "back.isUserInteractionEnabled = true".

問題がある可能性がありますか?

+1

を使用してラベルをリンクすることを忘れないでください私と一緒にうまく機能していることはあなたです、このコードを試してみてくださいラベルはラベルに正しく接続されていますか? – CZ54

+1

インターフェイスビルダーにコンセントを接続してもよろしいですか? – Andrea

+0

それが問題でした。今すぐ正しく動作します 私のラベルがラベルに正しく接続されていることを確信しました。 ありがとうございます。 –

答えて

0

ラベルのメモリ割り当てに問題があります。 IBOutletというラベルを作成しましたが、ストーリーボード/ XIBビューコントローラからのインターフェイスに接続していません。

Go to your Interface Builder: (Storyboard/XIB) View Controller ▶ Select 'Connection Inspector' ▶ Connect label outlet 'back' with Label interface element

enter image description here

+0

のように接続してくださいありがとうございます。私は接続がうまくできたと思ったが、欲しいことなく削除しなければならず、それが問題だった。 私はちょうどこれを行い、問題は機能します。 ありがとう –

0

使用back.userInteractionEnabled = true isUserInteractionEnabledとして間違っていました。

+0

私がそれを書いたとき、私はエラーを受け取りました。問題は、UILAbelがラベルに正しく接続されていないことです。ありがとう。 –

+0

あなたはストーリーボードを使用していますか? –

+1

@ Krunalの回答 –

0

class ViewController: UIViewController { 
@IBOutlet weak var cliclableLable: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.tapFunction)) 
    cliclableLable.isUserInteractionEnabled = true 
    cliclableLable.addGestureRecognizer(tap) 
} 

func tapFunction(sender:UITapGestureRecognizer) { 
    print("tap working") 
} 

}

もコード

関連する問題