2017-11-15 10 views
1

ボタン内のコード全体を1つのファイルに移動しようとしています。 インスタンスメンバーのshowSettingsが」タイプでは使用できません。インスタンスのメンバ 'showSettings'を 'SettingsLauncher'タイプで使用することはできません

import Foundation 
import UIKit 

class SettingsLauncher:NSObject { 

let blackView = UIView() 

func showSettings() { 
    if let window = UIApplication.shared.keyWindow{ 
     blackView.backgroundColor = UIColor(white: 0, alpha: 0.5) 
     window.addSubview(blackView) 
     blackView.frame = window.frame 
     blackView.alpha = 0 

     blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleDismiss))) 

     UIView.animate(withDuration: 0.2, animations: { 
      self.blackView.alpha = 1 
     }) 
    } 

} 

func handleDismiss(){ 
    UIView.animate(withDuration: 0.2, animations: { 
     self.blackView.alpha = 0 
     // dismisses blackView 
    }) 
} 

コンパイルが失敗し続け、見せて、 はここに私の元VC

let blackView = UIView() 
    let settingsLuancher = SettingsLauncher() 

    @IBAction func refreshBtnAction(_ sender: UIButton) { 

     SettingsLauncher.showSettings() 

    } 

でボタンだと、ここSettingsLauncher.swiftです'SettingsLauncher';代わりにこのタイプの値を使用することを意味しましたか?

これがどうして起こったのか分かりません。

答えて

1
あなたが代わりにオブジェクト settingsLuancherに、クラス名 SettingsLauncherを使用している

SettingsLauncher.showSettings() 

があるべき

settingsLuancher.showSettings() 
+0

おかげで以下のような

!今それは不注意な間違いだった... – Kei

2

SettingsLauncher.showSettings()を見ていないクラスメソッドもインスタンスこれは、インスタンスによって呼び出されますので、方法クラス自体ではないクラス。

settingsLuancher.showSettings() 
+1

私の質問に答えるためにありがとう!残念ながら、1つの回答しか選択できませんが、あなたのソリューションは非常に高く評価されています! – Kei

関連する問題