2017-04-10 7 views
1

私はこのようなObjective-Cのメソッドを持っているクラス機能は、

var instanceOfCustomObject:DriveListTableViewController = DriveListTableViewController() 

、今私はこのようなメソッドを使用することができます:

instanceOfCustomObject.find() 

しかし、私はのviewDidLoadにそれを置く場合にのみで動作します。 ボタンをクリックして呼び出す方法はありますか? 私はボタン

let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50)) 
     button.backgroundColor = .black 
     button.setTitle("Button", for: .normal) 
     button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside) 
     self.view.addSubview(button) 

func buttonClicked() { 
     print("Button Clicked") 
     instanceOfCustomObject.findFiles() 
     } 

を作成している。しかし、それはまだ私がのviewDidLoadにそれを置く場合にのみ機能します。私を助けてください! Objective-CファイルからSwiftファイルを呼び出す方法はありますか?

+1

「それはうまくいく」とはどういう意味ですか?「作品」を明確にします。あなたは 'DriveListTableViewController'のインスタンスを作成していますが、明らかにそれを提示していないので、おそらくメソッドを呼び出していますが、View Controllerが表示されていないので何の結果もありません。 – Paulw11

+0

必要なメソッドで静的ユーティリティを作成することができます。メソッドを使用するためだけにViewControllerをインスタンス化するのはなぜですか?表示する場合、またはユーザに表示する場合は、View Controllerをインスタンス化する必要があります。 –

+0

@ Paulw11私がviewDidLoadに "instanceOfCustomObject.find()"を入れた場合、その関数はonce.butだけ呼び出されますが、その関数をボタンで複数回呼び出す必要があります。これは迅速なファイルで呼び出されます。 - (void)findFiles { }はObjective-Cファイルにあります...どうすればいいですか? –

答えて

1

var instanceOfCustomObjectメソッドの外に、ではなく、のメソッドの外側に、viewDidLoadメソッドを宣言してください。

+0

既にviewDidLoadメソッドで宣言されていません。 –

+0

@KirillMIlititskiyいいよ、良い!しかし、それは 'find()'か 'findFiles()'ですか? –

+0

それは問題ですか?その名前。それはどんな名前でもかまいません。 –