[英]SWRevealViewController and TableView - swipe to delete not working
[英]SWRevealViewController swipe gestures are not working
您好我已經在swift中集成了swrevealview控制器。
我在app delegate中寫了下面的代碼。
let frontView = ViewController(nibName: "ViewController", bundle: nil)
let rearView = LeftViewController(nibName : "LeftViewController", bundle :nil)
var frontNavigationController = UINavigationController(rootViewController: frontView)
var rearNavigationController = UINavigationController(rootViewController: rearView)
menuSlider = SWRevealViewController(rearViewController: rearNavigationController, frontViewController: frontNavigationController)
menuSlider?.delegate = self
let rightView = LeftViewController(nibName : "RightViewController", bundle :nil)
menuSlider?.rightViewController = rightView
self.window?.rootViewController = menuSlider
self.window?.backgroundColor = UIColor.whiteColor()
self.window?.makeKeyAndVisible()
在前面看來我寫了
var revealController:SWRevealViewController = self.revealViewController()
self.view.addGestureRecognizer(revealViewController().panGestureRecognizer())
self.view.addGestureRecognizer(revealViewController().tapGestureRecognizer())
如演示中所示。 我看過很多帖子都建議在視圖上添加手勢。
我不確定我做錯了什么。 請幫我解決。
謝謝
我能想到的一件事是,在您的代碼中,您不會在任何地方存儲對前后視圖控制器的強引用。 在執行離開方法體之后,它將基本上被釋放。 在你的情況下,這樣的事情可以解決問題:
Class myClass {
// Declaration
var frontNC : UINavigationController!
var rearNC : UINavigationController!
...
func myFunction() {
// Usage
self.frontNC = UINavigationController(rootViewController: frontView)
self.readNC = UINavigationController(rootViewController: rearView)
// Note* there is no need to store ViewControllers because those
// are retained by UINavigationController by default. The only
// exception is if you want to do something with them later obviously :)
}
}
雖然它會渲染,但它會產生一整套問題,並且手勢識別器在我的經驗中是最難追蹤的。
您可以在Apple文檔中閱讀有關ARC如何工作的更多詳細信息,我認為沒有人能比那里寫的更好地解釋它:)
在viewDidLoad
方法中添加以下內容,
view.addGestureRecognizer(revealViewController().panGestureRecognizer())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.