gpt4 book ai didi

iOS/swift : How to implement longPressed action for backButton?

转载 作者:可可西里 更新时间:2023-11-01 01:05:07 25 4
gpt4 key购买 nike

我正在尝试为我的应用中的每个 ViewController 实现一个自定义后退按钮。我希望它有两个 Action 。如果按钮被点击,它应该正常运行并进入导航堆栈。如果按钮被按下时间越长,它应该转到预定义的 ViewController。

如何在 swift 中仅针对后退按钮实现此目的?

最佳答案

您可以隐藏默认导航后退按钮并通过这种方式添加自定义按钮:

import UIKit

class SViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
//hide your default back button
navigationController!.setNavigationBarHidden(false, animated:true)

//create a new button
var myBackButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
myBackButton.addTarget(self, action: "popToRoot:", forControlEvents: UIControlEvents.TouchUpInside)
myBackButton.setTitle("Back", forState: UIControlState.Normal)
myBackButton.setTitleColor(UIColor.blueColor(), forState: UIControlState.Normal)
myBackButton.sizeToFit()

//create a LongPressGestureRecognizer
var longPressGesture = UILongPressGestureRecognizer(target: self, action: "longPressAction:")

//add LongPressGestureRecognizer into button
myBackButton.addGestureRecognizer(longPressGesture)

var myCustomBackButtonItem:UIBarButtonItem = UIBarButtonItem(customView: myBackButton)
self.navigationItem.leftBarButtonItem = myCustomBackButtonItem

}

//this method will call when you tap on button.
func popToRoot(sender:UIBarButtonItem){
self.navigationController!.popToRootViewControllerAnimated(true)
}

//this method will call when you long press on button
func longPressAction(gestureRecognizer:UIGestureRecognizer) {

//initiate your specific viewController here.
println("Long press detected")
}

}

关于iOS/swift : How to implement longPressed action for backButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32517434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com