2017-05-08 49 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.

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

OpenSideBar.target = self.revealViewController()設置目標爲您UIBarButtonItem而行SWViewController.h文件可以在github在此鏈接中找到行OpenSideBar.action = Selector("revealToggle")設置在點擊所述按鈕時需要執行的動作。

您可以通過以下兩種方法之一使用UIButton來實現此功能。 您可以像設置'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