2017-05-08 13 views
2

私は、ボタンをタップするとメニューが左からスライドするアプリケーションにスライドメニューを追加したかったのです。 SWRevealViewControllerを使用してスライドアウトメニューを作成するためのガイドがありましたが、SWRevealの他のすべてのガイドでは、メニューを表示するためにタップするボタンにUIBarButtonItemを使用しています。だから私が助けが必要なのは、ガイドがUIBarButtonItemのために行うべきことをどうやって行うのかを考え出すことですが、代わりにUIButtonのためです。UIButtonを使用したSWReveal

OpenSideBarと呼ばれるUIBarButtonItemがあるとします。ガイドがviewDidLoad方法でこれを行うために言う:

OpenSideBar.target = self.revealViewController() 
OpenSideBar.action = Selector("revealToggle") 

だから私はそれが何をするか正確にはわからないが、私はUIButtonのためにそれを行うための方法を見つける必要があります。それが何のための説明もビデオの男はあまり説明しなかったので、評価されるだろう。

ボタンは現在、アウトレットです:

@IBOutlet weak var OpenSideBar: UIButton! 

が、私が代わりにアクションとしてそれを再作成し、機能の代わりに、viewDidLoad方法でものを行うかどうかを指定してください。 ありがとうございます。

P.S. SWViewController.hファイルこのリンクでgithubの上で見つけることができます:このリンクで

https://github.com/PCmex/lift-side-memu-in-swift-3/blob/master/memuDemo/SWRevealViewController.h

とSWViewController.m:

https://github.com/PCmex/lift-side-memu-in-swift-3/blob/master/memuDemo/SWRevealViewController.m

答えて

1

UIBarButtonItemのための目標を設定し、OpenSideBar.target = self.revealViewController()ラインとラインOpenSideBar.action = Selector("revealToggle")は、前記ボタンをタップするときに実行される必要があるアクションを設定する。

UIButtonを使用してこの機能を実現するには、次の2つの方法があります。 `UIBarButtonItemの場合と同じように、UIButtonのターゲットアクションを設定することができます。唯一の違いは、両方とも構文が異なることです。あなたはこの

OpenSideBar.addTarget(self.revealViewController(), action: #selector(SWRevealViewController.revealToggle(_:)), for: .touchUpInside) 

のようにそれをやっているだろうか、あなたの@IBActionとあなたの方法では、

self.revealViewController().revealToggle(self) 
+0

感謝を使うフックアップすることができます!私はそれ以上実行する前にエラーが発生していませんが、今は " - [LE.MapViewController OpenSideBar:]:インスタンスに送られた認識できないセレクタ"というランタイムエラーがあります。その後にランダムな文字と数字が続きます推測は記憶場所です。どんな考え? '@ IBAction'のフックアップを必要としない最初のバージョンは、サブビューに追加しようとしたときにエラーが発生していたので使用しました。 – RPatel99

+0

私はクラスを見て、問題のあるコードを指摘する必要があります。追加情報で質問を編集する必要があります。 – Malik

+0

心配しないで、ストーリーボードのボタンがまだ@IBActionメソッドにリンクされていることが分かりました。 – RPatel99